我正在解析包含Sabon字体私有区域中的字符的XML文档。必须替换这些字符,因为字体必须更改为Times New Roman。到目前为止,一切都很好。
现在我需要替换一个看起来像SS的字符(双s,就像两个s的连字一样)。我检查过Times并没有找到相应的char。有人知道unicode中是否有这样的东西吗?
答案 0 :(得分:3)
这有点神秘,但我认为你看到的字形是“ß”U + 00DF LATIN SMALL LETTER SHARP S的小型首字母,通常被称为“德国双s”。对于你在评论中提到的这个词,这没有什么意义,因为Broussonet是法国博物学家,而法语不使用“ß”(德语不使用“ß”作为外国名称),所以少数出现的“ Broußonet“Google认为必定是奇怪的拼写错误。
复制的字符串包含Sabon似乎用于小型大写字母的私人使用代码点。这有点奇怪,因为现在通常使用小型大写作为可选择的字形变体使用OpenType功能而不是私有使用代码点,根据定义它们是不可移植的。
这仍然无法解释发生了什么,因为字符串在这个意义上包含“Broussonet”,“ss”由两个私人使用代码点副本代表,用于Sabon中的小型“s”。据推测,“ss”和“ß”之间的某些转换正在某个地方发生。无论如何,你的第二个评论中的“字符”是U + E03F,一个私人使用代码点,显然用于Sabon中的小型“ß”,CFF字形id germandbls.sc。
但是,如果文本被解释为实际上是大写的,使用小写字母表示除第一个之外的字母,如果“SS”被解释为或被“ß”的大写形式替换,则它是“ẞ”U + 1E9E LATIN CAPITAL LETTER SHARP S.在普通的德语拼写中,“ß”在大写字母中映射到“SS”(正常字母“S”的两个副本),但是现在Unicode也有U + 1E9E,以满足当名字以全大写字母书写时,需要保持拼写上的差异,如Straussvs.Strauß。 Times New Roman的现代版本有“ẞ”字形,旧版本没有(U + 1E9E在2008年4月的Unicode版本5.1中添加)。