Utf 8 PHP-检测用户提供的字符';s字符集

Utf 8 PHP-检测用户提供的字符';s字符集,utf-8,character-encoding,Utf 8,Character Encoding,是否可以检测用户字符串的字符集 如果没有,那么下一个问题呢 是否有可靠的内置PHP函数可以准确地判断用户提供的字符串(通过get/post/cookie等提供)是否在UTF-8中?换言之,我能做些类似的事情吗 是\u utf8($\u GET['first\u name']) 这个函数是否会产生一个真实的名称,而实际上第一个名称不在UTF-8中 关于1: 你可以试一试,但这几乎是无中生有。“编码”字符串只是一堆字节。这种字节序列通常在任何数量的不同编码中都同样有效。因此,根据定义,不可能可靠地检

是否可以检测用户字符串的字符集

如果没有,那么下一个问题呢

是否有可靠的内置PHP函数可以准确地判断用户提供的字符串(通过get/post/cookie等提供)是否在UTF-8中?换言之,我能做些类似的事情吗

是\u utf8($\u GET['first\u name'])

这个函数是否会产生一个真实的名称,而实际上第一个名称不在UTF-8中

关于1:

你可以试一试,但这几乎是无中生有。“编码”字符串只是一堆字节。这种字节序列通常在任何数量的不同编码中都同样有效。因此,根据定义,不可能可靠地检测未知编码,您只能猜测。由于这个原因,存在诸如HTTP头之类的元信息,这些信息应该传达传输内容的编码。如果有的话,检查一下

关于2:


将告诉您该字符串是否为有效的UTF-8字符串。据我所知,在PHP的最新版本中,它按照tin上的说明进行操作。这仍然不意味着该字符串一定是UTF-8字符串,它只是意味着字节序列的顺序在UTF-8中是有效的。

请向上投票并接受您前面问题的答案(这也是)。请参阅。假设传入字符串为utf-8格式并对其进行解码如何?如果结果匹配,我们是否可以安全地得出结论,假设是正确的,它确实编码在utf-8中?所以在PHP中,如果我做了下面的操作,结果是真的,这是验证它是UTF-8的好方法吗?如果($\u GET['name']==utf8\u解码($\u GET['name']))我们是说,在PHP世界中,我们今天所处的位置没有任何东西可以验证用户输入是否为utf-8格式?我如何确保我可以为当前用户正确地转义/清理这些内容?我的转义/清理过滤器都是为处理utf-8而设计的。如果你不知道是哪种编码,文本只是字节ese字节表示几乎所有的赌注都是无效的。如果您不明白为什么会这样,我建议您阅读。这不仅仅是PHP的事情,而是关于计算机如何表示文本的一般问题。