【发布时间】:2016-11-15 14:51:05
【问题描述】:
我正在寻找一个 php 函数或库或建议,当客户复制和粘贴损坏的 utf8 字符串时,它可以验证损坏的表单输入值。
场景:
- 要求客户在 中输入街道名称
- 他打开了第三方存储地址的损坏页面
- 复制损坏的 utf8 字符串(参见示例)
- 将此字符串粘贴到输入字段中,然后单击提交
所以在服务器端,我收到“正确”的有效 utf8 值。
有没有办法捕捉到它,以便我可以捕捉到它并显示错误消息?
测试示例:
- “At’s ‘em”
- “博科夫斯基”
【问题讨论】:
-
要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
-
您可以使用 preg_match 来验证输入是否有效!例如,您可以将其与字母和数字进行比较,例如:a-z A-Z 0-9 :)
-
如果他们实际上粘贴了“At’s ‘em”这个词,那么他们实际上是在粘贴“At’s‘em”这个词"(就像我现在在这里做的那样)。没有什么是“坏”的,它只是不是你真正想要的角色(尽管我确实希望它们出现在这个评论中)。所以……这有点问题,因为没有明显的正确答案。什么时候是坏了,什么时候不是它……?
-
@deceze 没错!关于我应该以何种方式寻找捕捉它的任何建议?我可以尝试逐个预测我认为错误的一切。但这将永远持续下去。
-
第二种情况,粘贴一个�字符,已损坏无法修复,原始字符一去不复返了。在第一种情况下,您可以从 UTF-8 转换为拉丁文-1(左右)并将结果再次解释为 UTF-8;您可以尝试自动执行此操作,也许是递归的,直到您开始注意到字符被丢弃(因为它们不能用 Latin-1 表示),此时您已到达转换链的末端。确实,人类需要做出决定;也许会弹出一条消息“这看起来像mojibake”,然后提出一些猜测,让用户选择。
标签: php validation input utf-8