Php 使用utf8\u编码和utf8\u解码的正确时间是什么时候?
字符编码对我来说一直是个问题。我真的不知道什么时候该使用它 我现在使用的所有数据库都是用utf8\u general\u ci设置的,因为这似乎是一个很好的“常规”开始。在过去的五分钟里,我了解到它不区分大小写。所以这很有帮助 但我的问题是何时使用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编码
和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编码,所以应该很少需要这种转换
见:
utf8\u general\u ci
只是排序规则,对数据的存储方式没有任何影响。我采取了一些必要的措施。@martinstoeckli非常迂腐。。。如果排序规则是utf8_blablabla
,则表示列编码必须是utf8
。。。相关性!=因果关系,但在这种情况下,它们有着紧密的联系……;)@deceze-Ok不知道这一点。更清楚地说,字符集定义了数据的存储方式,排序规则是查询如何进行比较,例如对行进行排序。我不知道使用utf8的排序规则也被限制为utf8的字符集,我想记住iso-8859-1的字符集和utf8的排序规则,但可能我错了。@martinstoeckli我认为有效的排序规则集是由字符集决定的。如果字符集是排序规则的一个子集,那么可能会混合一些字符集,对此我不确定。