到目前为止,我有一个仅使用英语的应用程序.整个模板和数据库中的内容编码都是UTF-8.我现在正在寻求将应用程序国际化/翻译成具有绝对需要UTF-8字符集的语言.
该应用程序使用各种PHP字符串函数,例如strlen(),strpos(),substr()等,我的理解是,我应该将它们切换为多字节字符串函数,例如mb_strlen(),mb_strlen(),mb_substr( )等,以便正确处理多字节字符.我已经尝试阅读了一些有关该主题的内容,但是实际上我可以找到的所有内容都深入到“编码理论”中,并且没有提供以下简单答案:如果我始终使用UTF-8,是否可以从使用strlen()到mb_strlen()并期望事情能够正常运行,例如英语和阿拉伯语,还是我还需要注意其他事项?
如果我冒犯了一个相对愚昧无知的人,任何见识都将受到欢迎和歉意.
解决方法:
不会.由于字节数组在PHP中也是字符串,因此用mb_ *对应对象简单替换8位字符串函数只会造成麻烦.与实际文本字符串相比,诸如strlen()和substr()之类的函数可能更常与字节一起使用.
在我上次工作的地方,我们设法用PHP构建了一个多语言的网站(阿拉伯语,印地语以及其他语言),而根本没有使用mbstring库.文本字符串操作实际上并不经常发生.当这样做时,将需要的不仅仅是修改函数名.我发现,大多数挑战都在HTML方面.使页面布局与RTL语言一起使用不是一件容易的事.
我不知道您是否仅以阿拉伯语为例.取决于“国际”是仅指欧洲语言(加上俄语),还是包括中东,南亚和远东语言,国际化的难度差异可能很大.