Rus*_*uss 10 php utf-8 ctype setlocale
当我的PHP脚本UTF-8使用非ascii字符进行编码运行时,某些PHP函数就像strtolower()不起作用.我可以使用mb_strtolower,但是此脚本可以在各种不同的平台和配置上运行,并且多字节字符串扩展可能不可用.我可以在使用之前检查函数是否存在,但是我的代码中遍布了字符串函数,而不是替换每个实例.
有人建议使用set_locale(LC_CTYPE, 'C'),他说这会导致字符串函数正常工作.这听起来不错,但我不想在不明白它正在做什么的情况下引入这种改变.我之前使用过set_locale来改变数字的格式,但我之前没有使用过这个LC_CTYPE标志,我真的不明白它的用途.这个值'C'意味着什么?谢谢!
Thi*_*ter 10
C意味着"使用任何区域设置是硬编码的"(并且因为大多数*NIX程序是用C语言编写的,所以它被称为C).但是,它通常不是UTF8语言环境.
如果您使用多字节字符集(如UTF8),则无法使用常规字符串函数 - 需要使用mb_对应字符串.但是,几乎每个PHP安装都应该启用此扩展.
| 归档时间: |
|
| 查看次数: |
16339 次 |
| 最近记录: |