PHP字符串函数与mbstring函数

到目前为止,我有一个仅使用英语的应用程序.整个模板和数据库中的内容编码都是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语言一起使用不是一件容易的事.

我不知道您是否仅以阿拉伯语为例.取决于“国际”是仅指欧洲语言(加上俄语),还是包括中东,南亚和远东语言,国际化的难度差异可能很大.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...