2016-11-15 54 views
0

我在寻找一个php函数或库或建议,可以验证破损的表格输入值,当客户复制&粘贴破损utf8字符串。验证破碎的复制粘贴用户输入

场景:

  1. 客户被要求在
  2. 输入街道名称他打开第三方破页,他被存储地址
  3. 副本破UTF8字符串(见例)
  4. 将此字符串粘贴到输入字段并单击提交

S o在服务器端,我收到“正确”的有效utf8值。

有没有办法捕捉到这一些如何让我可以捕捉它并显示错误信息?

测试的例子:

  • “ATA€™的â€~em”
  • “Bokowski”
+0

问题,要求我们建议还是找一本书,工具,软件库,教程或其他异地资源是题外话堆栈溢出,因为他们往往以吸引自以为是的答案,垃圾邮件。相反,请描述问题以及到目前为止解决问题所做的工作。 – Lexi

+1

您可以使用preg_match来验证输入是否有效!你可以将它与字母和数字进行比较,例如:az AZ 0-9 :) – Soheyl

+0

如果他们实际上*粘贴单词“At”的“em”,那么他们实际上正在粘贴单词“Atâ” €™'em“(就像我现在在这里做的那样)。没有什么是“破碎”的,它只是不是你想要的角色(尽管我*在这个评论中希望他们在这里)。所以......这有点问题,因为没有明显的*正确*答案。当*是*什么东西坏了,当*不是*它...? – deceze

回答

0

由于没有通用的方法来确定值是否有误,我最终匹配了正则表达式[A-Za-z0-9 \ - 。],并向用户显示警告消息(如果不匹配)。

(由@soheyl建议)

0

起初一个UTF-8字符串不能被打破。该字符串可以有非UTF-8字符,它看起来像是“破碎”,而它只是一种不同的编码。

PHP有一个函数来检查什么样的编码用于给定的字符串:

string mb_detect_encoding (string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]]) 

来源:http://php.net/manual/en/function.mb-detect-encoding.php

但它只检查给定字符串是什么类型的编码,所以你只能检查是否使用正确的编码。

希望这会有所帮助。

+0

感谢您的回答,但在这种情况下,它始终是UTF-8,因为它来自有效的utf8编码网站。 – wormhit