如何解决网络中的编码问题

Abe*_*man 2 javascript php mysql web

我已经开发了1年的环境应用程序(apache,php,html5和javascript).我在此之前并不关心编码问题.它就像魔术一样.我只是在配置文件中设置mysql连接UTF-8而忘了.
但是在我的经验增长之后,我遇到了需要完全理解在这种环境下如何解决编码问题的情况.当我得到一些东西时,我会想念其他人.所以我无法全面了解.
要明确:

  • Javascript字符串是UTF-16
  • HTTP传输编码是任意的.
  • PHP字符串是二进制的.
  • Mysql连接也是随意的.

如何进行转换以及我需要关注的可能问题是什么.

Gol*_*rol 5

它们不是任意的,它们是你告诉它们的.所以一般来说,你可以把所有东西都改成UTF-8,你就没事了.

Javascript字符串内部只有UTF-16.您发送的JS文件可以是UTF-8.如果您告诉浏览器响应的编码,浏览器将能够转换为所需的编码.只有当您指定的编码与实际发送的编码不同时才会出现问题.

为什么选择UTF-8?

  • 每个ANSI编码都有指定所有字符的问题(只有256个不同字符的空间).
  • UTF-8通常是最紧凑的unicode格式,特别是在您运输西方语言时.
  • UTF-8是唯一不受Linux和Windows之间的字节顺序标记差异影响的unicode编码,尽管这也是您通常不必担心的问题.

推荐阅读: 绝对最低每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)