字符编码对我来说一直是个问题。当正确的使用时间时,我真的无法获得。
我现在使用的所有数据库都是使用utf8_general_ci设置的,因为这似乎是一个很好的' general'开始。从那时起我在过去的五分钟里就知道它不区分大小写。这样有用。
但我的问题是何时使用utf8_encode
和utf8_decode
?据我所知,如果我从我网站上的表格中输出一个表格,我需要utf8_encode()
之前将其插入数据库。
然后当我把它拉出来时,我需要utf8_decode它。是这样的吗?或者我错过了什么?
答案 0 :(得分:7)
utf8_encode
和_decode
是非常糟糕的误解。这些函数唯一能做的就是在UTF-8和ISO-8859-1编码之间进行转换。它们分别与iconv($str, 'ISO-8859-1', 'UTF-8')
和iconv($str, 'UTF-8', 'ISO-8859-1')
完全相同。没有其他魔法可以使用它们。
如果您从浏览器收到UTF-8编码的字符串,并且希望使用与utf8
字符集集的数据库连接将其作为UTF-8插入到数据库中,那么任何一个函数都绝对没用这个链中的任何地方。你根本不想转换编码,这应该是目标。
你 外部系统需要此编码中的数据。但即便如此,我还是希望明确使用iconv
或mb_convert_encoding
,因为它会使事情变得更加明显和明确。在这个时代,UTF-8应该是你在整个过程中使用的默认编码,因此对这种转换的需求应该很少。
请参阅:
答案 1 :(得分:-2)
基本上let dbPath = (documentsFolder as NSString).stringByAppendingPathComponent("db.sqlite")
用于utf8_encode
。
当你正在使用一种语言翻译成另一种语言时,你必须使用这个函数来防止显示一些垃圾字符。
喜欢当你显示西班牙语字符时,脚本不会识别西班牙语字符,它会显示一些垃圾字符而不是西班牙语字符。
那时你可以使用。
如需了解更多信息,请点击此链接: