计算多字节字符的数量
Posted
技术标签:
【中文标题】计算多字节字符的数量【英文标题】:Counting the number of multi-byte characters 【发布时间】:2011-11-13 04:46:12 【问题描述】:我有包含多字节字符的文本,如图所示:
위키백과,백과사전。
대수(λ -, lambda -)는 함. 1930년대다. 함수 s(x, y) = x*x + 입력 x 것이다。 x ↦ x 와 y ↦ y 는 변수의 이름은。 또한 (x, y) ↦ x*x + y*y 와 (u, v) ↦ u*u + v*v 는.123456
在文字处理器中,它给我的字符数是 148。
在以 UTF-8 编码的 html 表单上,它使用了属性为 maxlength = 150
的 TEXTAREA
字段。
使用 php 函数 mb_strlen($_POST['text'],'UTF-8')
,它返回值 152。
哪个是正确的?
【问题讨论】:
哪个字处理器?也许他们不把换行符算作字符? @Yzmir Ramirez,libreoffice 作家。你是对的,它不计算换行符。那为什么 HTML 和 PHP 有区别呢? 【参考方案1】:我会说他们都是正确的。
没有行尾是 148。
行尾是 150 或 152,具体取决于编码(Windows 使用每个行尾 2 个字符)。
【讨论】:
您能详细说明一下吗?我不明白。你的意思是 PHP 算了两个额外的\n
s,HTML 算了一个?
在 Windows 中,换行符是两个字符 \n\r
,但在 Mac OS X 和 *nix 机器上,它的 \n
和 \r
对于 Mac OS(最多 9 个),如果我有记忆的话正确。换行历史en.wikipedia.org/wiki/Newline
@Yzmir Ramirez,我明白了.. 我使用的是 Linux。
@BenHuh 如果插入另一行,输出是什么? 153和156?
我猜 HTML 将换行视为一个字符,PHP 将其视为两个,而文字处理器根本不计算换行。以上是关于计算多字节字符的数量的主要内容,如果未能解决你的问题,请参考以下文章