脚本宝典收集整理的这篇文章主要介绍了PHP的mb_internal_encoding实际上做了什么?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
> HTTP输入字符编码转换
> HTTP输出字符编码转换
>字符串函数的默认字符编码
>“内部编码与多字节正则表达式完全不同”是什么意思?
我的猜测是
>表示GET和POST被视为该编码.
>表示它输出到该编码.
>表示它对所有多字节字符串函数使用该编码.
>我不知道.为什么正则表达式与普通字符串函数不同?
如果第2点是正确的,你需要这样做:
ini_set('default_charset','UTF-8');
如果我理解正确,这意味着如果你这样做:
mb_internal_encoding('UTF-8')
你不需要这样做:
mb_strtolower($str,'UTF-8');
只是:
mb_strtolower($str);
我确实读过另一个SO帖子,mb_strtolower($str)不应该被信任,你需要为每个多字节字符串函数设置编码.这是真的?
对于3.,的确如此,mb_internal_encoding基本上为接受$encoding参数的所有mb_函数设置默认值.本质上它只是设置一个全局变量(内部),其他函数读取,这就是全部.
最后一部分指的是有一个单独的mb_regex_encoding
函数来设置mb_ereg_函数的内部编码.
我同意这一点,因为所有的全球国家都不可信任.这是非常值得信赖的:
mb_internal_encoding('UTF-8'); mb_strtolower($string);
但是,这不是真的:
mb_strtolower($string);
看到不同?如果您依赖于在其他地方正确设置全局状态,您永远无法确定它实际上是否正确.你只需要调用一些第三方库,在你不知道的情况下将mb_internal_encoding设置为其他东西,你的mb_strtolower调用会突然表现得非常不同.
以上是脚本宝典为你收集整理的PHP的mb_internal_encoding实际上做了什么?全部内容,希望文章能够帮你解决PHP的mb_internal_encoding实际上做了什么?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。