Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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 使用utf8\u编码和utf8\u解码的正确时间是什么时候?_Php_Mysql - Fatal编程技术网

Php 使用utf8\u编码和utf8\u解码的正确时间是什么时候?

Php 使用utf8\u编码和utf8\u解码的正确时间是什么时候?,php,mysql,Php,Mysql,字符编码对我来说一直是个问题。我真的不知道什么时候该使用它 我现在使用的所有数据库都是用utf8\u general\u ci设置的,因为这似乎是一个很好的“常规”开始。在过去的五分钟里,我了解到它不区分大小写。所以这很有帮助 但我的问题是何时使用utf8\u编码和utf8\u解码?就我现在所见,如果我$\u在我的网站上发布表格,我需要utf8\u encode()将值插入数据库之前 然后当我把它拿出来的时候,我需要utf8_解码它。是这样吗?还是我遗漏了什么?基本上utf8\u encode用

字符编码对我来说一直是个问题。我真的不知道什么时候该使用它

我现在使用的所有数据库都是用utf8\u general\u ci设置的,因为这似乎是一个很好的“常规”开始。在过去的五分钟里,我了解到它不区分大小写。所以这很有帮助

但我的问题是何时使用
utf8\u编码
utf8\u解码
?就我现在所见,如果我$\u在我的网站上发布表格,我需要
utf8\u encode()
将值插入数据库之前


然后当我把它拿出来的时候,我需要utf8_解码它。是这样吗?还是我遗漏了什么?

基本上
utf8\u encode
用于
将ISO-8859-1字符串编码为UTF-8
。 当您将一种语言翻译成另一种语言时,您必须使用此函数来防止显示一些垃圾字符

例如,当您显示西班牙语字符时,脚本有时无法识别西班牙语字符,它将显示一些垃圾字符而不是西班牙语字符

那时你可以用

欲了解更多信息,请点击以下链接:


utf8\u编码
\u解码
是非常严重的误称。这些函数所做的唯一事情就是在UTF-8和ISO-8859-1编码之间进行转换。它们分别与
iconv('ISO-8859-1','UTF-8',$str)
iconv('UTF-8','ISO-8859-1',$str)
做完全相同的事情。没有其他需要使用它们的魔法

如果您从浏览器接收到UTF-8编码的字符串,并且希望使用带有
utf8
charset集的数据库连接将其作为UTF-8插入数据库,则此链中的任何一个函数都绝对没有用处。在这里,您对转换编码一点也不感兴趣,这应该是您的目标

由于外部数据以这种编码方式编码,或者外部系统要求数据以这种编码方式编码,因此,在任何时候都需要从UTF-8转换为ISO-8859-1,或者从UTF-8转换为ISO-8859-1,这两种功能都可以使用。但即便如此,我还是更喜欢显式地使用
iconv
mb\u convert\u编码
,因为这会使事情变得更加明显和明确。在这个时代,UTF-8应该是您在整个过程中使用的默认go-to编码,所以应该很少需要这种转换

见:


我进一步推荐。将您的站点设置为UTF-8,这样您就再也不用担心编码和解码了。
utf8\u general\u ci
只是排序规则,对数据的存储方式没有任何影响。我采取了一些必要的措施。@martinstoeckli非常迂腐。。。如果排序规则是
utf8_blablabla
,则表示列编码必须是
utf8
。。。相关性!=因果关系,但在这种情况下,它们有着紧密的联系……;)@deceze-Ok不知道这一点。更清楚地说,字符集定义了数据的存储方式,排序规则是查询如何进行比较,例如对行进行排序。我不知道使用utf8的排序规则也被限制为utf8的字符集,我想记住iso-8859-1的字符集和utf8的排序规则,但可能我错了。@martinstoeckli我认为有效的排序规则集是由字符集决定的。如果字符集是排序规则的一个子集,那么可能会混合一些字符集,对此我不确定。