【发布时间】:2017-11-18 16:00:37
【问题描述】:
附注: 我在运行 Windows 10 Home Single Language 版本的机器上使用 PHP 7.2.2。我正在使用已安装的 XAMPP v3.2.2
中的 PHP仅考虑我对 PHP 7 的所有疑问。
请查看Strings page of PHP Manual 中的以下文字:
字符串是一系列字符,其中一个字符与一个字符相同 字节。这意味着 PHP 只支持 256 个字符集,因此 不提供原生 Unicode 支持。
上面的文字在我的脑海中提出了很多问题,如下:
- "256-character set" 在 PHP 上下文中的实际含义是什么?在这个所谓的 256 字符集 中涉及哪些 256 个字符?这个“256-character set”在 PHP 上下文中的正式名称是什么?
- “原生 Unicode 支持” 究竟是什么意思?
- 我听说废弃的 PHP 6 版本即将包含 “Native Unicode Support”,但不知何故它从未发布并最终被放弃。所以,我预计 PHP 7 将包含 "Native Unicode Support" 但手册说它仍然不支持 PHP 7?为什么会这样?
- PHP 如何克服 PHP 7 版本中的这一缺陷?
- 是否可以用支持多种语言的 PHP 创建网站,尤其是印度语言,因为 PHP 没有“Native Unicode Support”?
【问题讨论】:
-
回答你的第一个问题......ASCII
-
2.你需要花哨的函数来使用 unicode。 php.net/manual/en/ref.mbstring.php
-
大多数 PHP 核心/字符串函数采用单字节编码的 ASCII/Latin-1 文本。 UTF-8 编码的字符串通常不会造成问题,但
strlen/substr等人仍然只能逐字节处理。所以这意味着:除了特定的正则表达式/多字节函数之外,PHP 默认情况下不会解释字符串中的字符编码。没有unicode-type/default 用于字符串,例如Python3.
标签: php unicode byte native php-7