【问题标题】: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 = 150TEXTAREA 字段。

使用 PHP 函数 mb_strlen($_POST['text'],'UTF-8'),它返回值 152

哪个是正确的?

【问题讨论】:

  • 哪个字处理器?也许他们不把换行符算作字符?
  • @Yzmir Ramirez,libreoffice 作家。你是对的,它不计算换行符。那为什么 HTML 和 PHP 有区别呢?

标签: php html libreoffice


【解决方案1】:

我会说他们都是正确的。

没有行尾是 148。

行尾是 150 或 152,具体取决于编码(Windows 使用每个行尾 2 个字符)。

【讨论】:

  • 您能详细说明一下吗?我不明白。你的意思是 PHP 算了两个额外的\ns,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 将其视为两个,而文字处理器根本不计算换行。
猜你喜欢
  • 2019-07-02
  • 2021-09-28
  • 1970-01-01
  • 2017-10-20
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多