Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何知道多字节是否需要对话?_Php_Encoding_Multibyte - Fatal编程技术网

PHP如何知道多字节是否需要对话?

PHP如何知道多字节是否需要对话?,php,encoding,multibyte,Php,Encoding,Multibyte,我对一个系统有一个问题,这个系统的反应在某种程度上取决于它的情绪 有时返回TÃNIS,有时返回TÕNIS 结果被连接到一个字符串,并在函数中与另一个字符串进行比较,因此数据是有效的 问题是,这是有效的TÕNIS,但这不是TÕNIS 为了解决这个问题,我使用这个函数 mb_convert_encoding('TÕNIS', 'Windows-1252', 'UTF-8'); 这是可行的,但也有一个问题,因为有时反应是正确的 这个函数将把一个好的字母转换成� 这将变得无效 有没有办法检查响应是以

我对一个系统有一个问题,这个系统的反应在某种程度上取决于它的情绪

有时返回TÃNIS,有时返回TÕNIS

结果被连接到一个字符串,并在函数中与另一个字符串进行比较,因此数据是有效的

问题是,这是有效的TÕNIS,但这不是TÕNIS

为了解决这个问题,我使用这个函数

mb_convert_encoding('TÕNIS', 'Windows-1252', 'UTF-8');
这是可行的,但也有一个问题,因为有时反应是正确的 这个函数将把一个好的字母转换成� 这将变得无效

有没有办法检查响应是以多字节还是以普通字母显示的

请记住,这是许多有此问题的角色之一


我无法控制我得到的反应。解决这个问题的唯一方法是在我这边解决它

所以经过长时间的搜索、尝试和错误

    $result = mb_convert_encoding($string, 'Windows-1252', 'UTF-8');
    if(mb_check_encoding($result)){
        return $result;
    }else{
        return $string;
    }
对TÕNIS进行编码后,这将损坏字符串上的编码 虽然TÕNIS在此上会正确转换为TÕNIS,并且编码将有效

您需要在整个系统中正确处理编码。一个系统不是“喜怒无常的”,有些人只是在某一点上没有正确处理编码。你必须知道,你决不能猜到绳子是什么样子的。如果你不知道,那就是你的问题,你需要追溯到它的根本原因。从这里开始:当我想说“moody”时,这就是我的意思“moody”-有人在某个时候没有正确处理编码。不需要向我解释什么设置不正确。我不知道。我们无法控制系统的反应,因此我们需要自己处理