我目前正在接受以英文,俄文和乌克兰文输入的网站。在PHP字符串中查找unicode失败
用户通常会提交带有商标符号(™),日文字母(の)和德文字母(Ö)等字符的表格。
这很好,但有时当他们这些人物从什么地方复制粘贴他们提交输入像(0xD8000xDC00),(0xFFFD),(0×17),¿(为0xBF) 1/2 (0xBD)和ï(0xEF)(顺便提一下,有一个乌克兰字母“ї”,值为0x457)。
稍后,当该输入被转换以UTF-8 XML它引发此错误 “输入是不妥当的UTF-8,指示编码字节:!0x17已0xEF为0xBF 0xBD,线13330,列27” 。
有没有一种方法来验证用户输入中的这些'断'字符?
我正在考虑将每个字符从输入字符串转换为HEX值,然后与包含所有非法HEX值的数组进行比较。但是在这种方法中,问题是我不知道所有可能的“破”字符的代码。我知道经常出现0xEF 0xBF 0xBD,但我不知道还有多少。
有什么建议吗?
的[从字符串中删除非utf8字符(可能的复制http://stackoverflow.com/questions/1401317/remove-non -utf8字符-从串) – iainn