【问题标题】:PHP intval of multibyte strings多字节字符串的PHP间隔
【发布时间】:2016-03-31 19:02:35
【问题描述】:

当使用 UTF-8 多字节字符串而不是常规的每个字符串一个字节时,intval() 有何变化?是一样的吗?

【问题讨论】:

  • 你期望 intval() 从多字节字符串中给你什么?例如来自123αβγ。为什么你认为这与123abc 有什么不同?
  • @MarkBaker 我认为两者都应该给 123。
  • @MarkBaker 是的,我做到了。但是我想确保它没问题,我刚刚过渡到 utf-8 并且我是初学者,不想从我运行的一些回声测试中得出结论。我没有遇到任何问题,但我也没有遇到 trim() 的问题,而且似乎有一些问题。

标签: php utf-8


【解决方案1】:

PHP 内部不区分字符串编码。字符串只是一个字节数组。如果将 UTF-8 字符串传递给 intval,该函数只会看到编码的 UTF-8 字符串的字节。鉴于 UTF-8 编码的性质,intval 会将任何非 ASCII 字符视为非数字。因此,无论您传递 ASCII、Latin1 还是 UTF-8 字符串都没有区别。

【讨论】:

  • 谢谢,这与我所做的测试是一致的,但我不想根据几个回声测试在上面打赌。
猜你喜欢
  • 2014-07-12
  • 2016-08-03
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多