逍遥游

UTF-8、utf-8、utf8的那些事

问题描述

最近在写网页程序的时候碰到了中文乱码的问题,按说是没有错的,读写都设置了字符编码集:mysql_set_charset(‘utf-8’),但写到mysql数据库中的数据就是乱码。找了另外一个程序传到服务器上,一切正常!查了半天,唯一的差别在于:那个程序是这样的:mysql_set_charset(‘utf8’),比我的少了一个‘-’号,很纳闷,‘-’号怎么省了?搜索了各大论坛,得出了一些答案。

分析

首先,UTF-8、utf-8、utf8代表的是同一种编码格式,都是采用unicode编码,这种编码包含了各国文字(据说还有外星文…),一般每个字符占2-4个字节。

至于它们的不同之处在于:

1、UTF-8 与 utf-8 ,大小写形式不同罢了,基本没有差异。

2、另外再说utf8,其实到目前为止,我也只在mysql 数据库中见过。至于为什么这么写,有网友说,这是mysql数据库遗留的的一个bug,坑了无数程序猿,但是我觉得,这种说法只是一个笑话罢了;另一个原因,我觉得还是比较可靠的,就是mysql指令中含有运算符号,而utf-8中的‘-’恰好就是减号,为了指令分析的便捷,故将‘-’省去,得‘utf8’。

总结

仅在mysql中使用utf8,其他地方为utf-8 或 utf-8


多说停止服务,disqus引导注册太过分,暂时不上评论系统了。有机会自己造轮子吧。邮箱:input@newnius.com