好歹我也是个做网站的,最近发现一个网站问题让我很困惑: 打开网页: http://www.duden.de/rechtschreibung/hallo
你看到的是 hallo
再到任意一个文本编译器 ctrl + v 粘贴,notepad.exe 就行,不能是富文本的,Word 就不行,
你看到的是 hal-lo
那个特殊中划线用 hex 查看是两字节:C2AD 普通的中划线用 hex 查看是一个字节:2D
这是怎么做到的,这个字符为什么在 input 和 textarea 里面就看不到呢?
soft hyphen (U+00AD), 如果要换行就会从那换,效果同 <wbr> 或者 ­
<wbr>
­
是否显示要看对应程序是怎么实现文字渲染的...
#1 楼 @luikore 用你的关键字找到这个: http://www.fileformat.info/info/unicode/char/00ad/index.htm
如果我也想把数据库中的 hallo 加上这个字符输出为 hal-lo,你有什么建议吗? 如果直接使用 ­,查看源代码会看到 ­,除非直接复制这个符号使用。
­
#2 楼 @Peter 找个拆音素 (phoneme segmentation) 的算法?
#2 楼 @Peter 哦,明白你的意思了... 解决办法是... 换个会显示的浏览器?(好像大部分浏览器都不显示它...)
http://www.w3.org/TR/html401/struct/text.html#h-9.3.3
标准规定是平时不显示,在那个地方换行了才显示
你把那个页面的 span 调成 display: block; width: 58px 就能见到它了...
#4 楼 @luikore 谢谢回复,我的意思是,如果我自己做一个程序,想把输出的信息中加入这些看不见的中划线,应该怎么做呢?加入­是不行了,可能就只能复制这个符号使用了。
先找个包含音节拆分的词典拆分?按规则拆分的话,每种语言规则不一样,挺复杂的... tex 排版引擎有对英语的实现。然后就 join ...
["hal", "lo"].join "\u00AD"
可以看看 https://code.google.com/p/hyphenator/
#6 楼 @luikore 非常感谢~