【问题标题】:Difference between breaking and non breaking space ascii characters中断和非中断空格ascii字符之间的区别
【发布时间】:2016-08-01 20:05:19
【问题描述】:

我在 javascript 中有两个相同的字符串,带有一些空格。当我使用str.charCodeAt(n) 打印 ascii 值时,它显示的值为 32 和 160。我用谷歌搜索了这些值,它显示我为中断和非中断空间。那么任何人都可以解释这种行为是什么。

【问题讨论】:

  • 你能给我们一个你使用的 2 个字符串的样本吗?
  • 为什么会有java标签?
  • 思考点:charCodeAt 为您提供一个 UTF-16 代码单元,其中一个或两个编码一个 Unicode 代码点。 ASCII 字符集没有不间断的空格字符(但没关系,如果您使用的是 JavaScript、Java、.NET、HTML、XML ……,您可能没有使用 ASCII。)

标签: javascript ascii


【解决方案1】:

正常(分行)空格和不间断空格的区别在于文本显示和排版软件不应插入自动换行符来代替不间断空格。 (就好像不间断空格将它之前和之后的单词连接成一个不可分割的单词。)相比之下,常规空格被视为可能的换行位置。

话虽如此,代码160 实际上超出了常规(7 位)ASCII 的范围。将160 解释为不间断空格(或NBSP)字符来自Latin1 (ISO8859-1) 字符集。 (在扩展 ASCII 中,NBSP 字符的代码是 255!)

参考资料:

【讨论】:

  • • 太棒了!在输入textarea 时,您可以使用Alt,2,5,5 在项目符号(Alt,78 或@987654337)之前强制使用前导空格@)。否则浏览器将不会显示前导或尾随空格。但是,一些网络应用程序实现了trim() 或类似技术,以删除或不显示前导、尾随、重复或\n 空白字符。
【解决方案2】:

不间断空格是不会换行的空格。 由不间断空格分隔的两个单词将粘在一起,不会换行。

另一方面,空格会被打破。

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 2017-05-25
    • 2010-10-16
    • 2010-09-10
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2020-07-21
    • 2017-09-13
    相关资源
    最近更新 更多