【发布时间】:2016-04-27 20:09:53
【问题描述】:
我有两个 utf-8 字符串:
- 在 php 文件中保存为变量(以 UTF-8 保存)
- 另一个使用正则表达式从另一个外部获取。
当我比较这两个相同的以空格分隔的字符串时,结果是假的,这意味着它们不一样。
- 我保存为变量的字符串呈现为
20和bin2hex(ascii 编码的空格符号) - 我在外部得到的用
mb_strtolower($string, 'utf-8')处理的字符串被渲染为c2a0和bin2hex(utf-8 空格)
我的问题是:
- 为什么当我保存在未完全编码为 utf-8 的 utf-8 字符串时(意思是 ascii 中的空格)?
- 如何解决这个问题?
【问题讨论】:
-
c2a0是 no-break space 而20是 space。