首页 > 解决方案 > 为什么 Whatsapp 和 Javascript 返回相同 unicode 字符串的不同长度?

问题描述

有问题的unicode字符串:

ਪਹਿਲਾਂ ਲੋਕਾਂ ਦੇ ਦਿਲਾਂ ਦਿਮਾਗ਼ਾਂ ਚੋਂ ਇਹ ਵਹਿਮ ਕੱਢੋ ਕਿ 
ਅਸੀਂ ਹਿੰਦੂ ਹਾਂ,
ਅਸੀਂ ਸਿੱਖ ਹਾਂ,
ਅਸੀਂ ਮੁਸਲਮਾਨ ਹਾਂ,
ਅਸਲੀਅਤ ਇਹ ਹੈ ਕਿ 
ਅਸੀਂ ਭੁੱਖੇ ਹਾਂ, 
ਅਸੀਂ ਬੇਰੁਜ਼ਗਾਰ ਹਾਂ, 
ਅਸੀਂ ਨਸ਼ੇੜੀ ਹਾਂ, 
ਅਸੀਂ ਲਾਚਾਰ ਹਾਂ, 
ਅਸੀਂ ਬੇਵਕੂਫ਼ ਹਾਂ, 
ਅਸੀਂ ਬੀਮਾਰ ਹਾਂ, 

语言:旁遮普语
格式:Unicode

问题:
Javascript 报告它的str.length() = 226;而WhatsApp700 Characters

Javascript代码:

console.log(inputStr.length);

Whatsapp 截图 01:
很好,没有错误:(计数为 698 或 699)

Whatsapp 截图 01

只需从移动键盘添加一个新行就可以超过 700 Whatsapp 截图 02

  1. 为什么字符串长度有很大的不匹配?
  2. 哪个数字是真实的?
  3. 如何在 Javascript 中获得与 Whatsapp 结果相同的类似结果?

标签: javascriptwhatsappstring-length

解决方案


  1. 这似乎是 Whatsapp 的错误。如果您尝试使用换行符输入文本,您会发现在第 15 行会出现超过 700 个字符的错误,无论当前字符数是多少。

    如果您尝试在没有换行符的情况下放置字符串,它将起作用并且不会显示超过 700 个字符的消息(如下图所示)

  2. 正确的长度是 226 的 javascript 字符串长度。

您的文字没有换行符


推荐阅读