Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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_Mysql_Encoding - Fatal编程技术网

Php 奇怪的编码问题

Php 奇怪的编码问题,php,mysql,encoding,Php,Mysql,Encoding,我有一个用拉丁字母5字符集编码的数据表,表中的所有列也是拉丁字母5。当我在mysql控制台中输入“SET NAMES'latin5'”并查询表结果时,一切正常。当我尝试删除或插入/更新时,所有新数据的编码都是完美的。但是,当我尝试向数据库插入Iso-8859数据(也使用mb_detect_编码验证这一点)时,我尝试插入没有“SET NAMES”的数据时,它不会以正确的编码插入/更新/选择,或者当我使用“SET NAMES'latin5'时”它没有以正确的方式插入/更新,但select are o

我有一个用拉丁字母5字符集编码的数据表,表中的所有列也是拉丁字母5。当我在mysql控制台中输入“SET NAMES'latin5'”并查询表结果时,一切正常。当我尝试删除或插入/更新时,所有新数据的编码都是完美的。但是,当我尝试向数据库插入Iso-8859数据(也使用mb_detect_编码验证这一点)时,我尝试插入没有“SET NAMES”的数据时,它不会以正确的编码插入/更新/选择,或者当我使用“SET NAMES'latin5'时”它没有以正确的方式插入/更新,但select are ok latin5数据是以正确的编码输入的,只有集合名“latin5”。当我使用集合名“utf8”时,select查询编码错误,但insert/update正常


我要求我们去生产的原因。这让我想到了未来可能出现的问题。

mb\u-detect\u-encoding
不知道字符串的编码方式。这是一个有条件的猜测,但不能保证它会猜对。尤其是如果候选代码都是单字节编码,比如拉丁1和拉丁5

如果您想正确使用字符集,那么知道自己在做什么真的是无可替代的。我建议您至少阅读以下几页:

特别要注意的是,web页面是由http头提供的,该头指定了页面编码时使用的字符集。除非从php脚本中显式设置,否则将使用webservers默认值,这可能因服务器而异

另外,要谨慎地去真正理解正在发生的事情,而不是反复尝试。后者可以很容易地为您提供在某些上下文中有效的内容,但不是在所有上下文中都有效

最后。如果你有任何选择,我郑重地建议你使用utf-8的一切。拉丁5会让你很伤心