php + mysql + html + javascript = i18n头痛不已

11 浏览
0 Comments

php + mysql + html + javascript = i18n头痛不已

这一直是我的一个问题,字符问题。我一直试图用一些小修补来解决问题,但实际上这并不能真正解决我的问题。因此,我正在寻找一个非常强大的解决方案来解决所有这些问题。我想要学习大型应用程序(如Facebook、Google和其他多语言Ajax应用程序和API)是如何解决这个问题的。我希望有一个解决方案,可以解决所有字符编码等问题。我使用php、mysql、html和javascript来创建我的应用程序,所以解决方案应该解决所有这些语言的问题。如果你提供完整的配置,那就太完美了,但如果有一个非常长的文档,我也可以阅读。我需要帮助。谢谢。 我无法正确地通过所有这些语言传输字符串(文本)

  1. 另外,我从外部API中获取数据。我应该如何处理它们
0
0 Comments

php + mysql + html + javascript = i18n headache问题的出现的原因是不同的技术默认使用不同的字符编码。字符串本身没有隐式的编码元数据附加,它们只是字节序列。除非有明确的告知,否则接收字符串的人只能猜测该序列应该使用哪种编码。在连接两个不同技术的组件时,您需要确保它们使用相同的编码(或者您需要明确地从一种编码转换为另一种编码)。始终假设您需要在某个地方定义编码,具体如何进行取决于技术。

解决这个问题的方法是:

- 将MySQL表的编码设置为UTF-8。

- 确保您在与数据库交互时使用UTF-8,运行“SET NAMES utf8”命令。

- 在保存所有源代码时,使用UTF-8编码。

- 在PHP中操作可能包含UTF-8字符的字符串时,使用“mb_”函数。

- 发送HTTP Content-Type头以指示内容为UTF-8。

- JavaScript本身就是UTF-8的,所以不用担心。

此外,还需要明确外部API使用的字符集和编码,并根据需要编写编码转换函数。大多数外部API(如Flickr和Twitter)现在返回UTF-8编码的数据。

重要的是,如果MySQL版本低于5.3,请将其设置为utf8-bin;如果MySQL版本高于5.3,请将其设置为utf8-ucs4。这样可以确保不会丢失超过BMP(基本多文种平面)的字符。

通过以上方法,您可以解决php + mysql + html + javascript = i18n headache问题。

0