【问题标题】:Internet Explorer does not change 'ß' (ß/es-zed) to 'SS' when using 'text-transform: uppercase;'使用“文本转换:大写;”时,Internet Explorer 不会将“ß”(ß/es-zed)更改为“SS”
【发布时间】:2013-02-09 21:55:38
【问题描述】:

Internet Explorer 9 和 10 不会将德语 es-zed "ß" (ß, 'sz') 更改为 "SS"正确使用 CSS 规则 text-transform: uppercase;。这是根本没有实现,还是我可以以某种方式处理的错误,而不是手动替换所有“ß”?

【问题讨论】:

  • 可能与本地化有关。假设该站点是德语的;您是否设置了页眉以指定语言?
  • 是的,使用 UTF-8,文件也用 UTF-8 编码,语言设置为"de"

标签: html internet-explorer character css


【解决方案1】:

这是一项功能。 CSS 2.1 没有定义大写和小写的含义,IE 9 处理 U+00DF LATIN SMALL LETTER SHARP S “ß” 使其大写映射为 U+1E9E LATIN CAPITAL LETTER SHARP S “ẞ”(虽然有区别可能很难看到)。这发生在“标准模式”;在 Quirks 模式下,IE 9 将“ß”视为自己的大写映射。

这个功能很奇怪,因为正常的方式是将“ß”映射到“SS”,而大写的“ẞ”是几年前添加的可选在单词大写的相对较少的情况下使用,以便区分例如必须保留 Strauss 和 Strauß 的名称

CSS 3 Text 工作草案规定应根据 Unicode 应用大小写映射,并将“ß”映射到“SS”。如果它会成为推荐,那么该功能就会变成一个错误。

通常,在 CSS 中进行大小写映射是不可靠的。最好在适当的情况下生成内容,如果需要,在服务器端执行映射。然后您可以单独处理任何特殊情况。您还可以使用客户端 JavaScript;在 JavaScript 中,大小写转换是 Unicode 感知的(JavaScript 已经很好地全球化的少数领域之一)。

【讨论】:

  • 这是一个很棒的答案。非常感谢。
  • 让我添加一个问题。我想知道:搜索引擎对大写文本的处理方式是否不同?所以我很好奇所有标题都是大写字母的页面。如果文本已经过预处理,这会不会有问题?
  • @insertusernamehere,对于该问题,您可能希望提出一个新问题,但当前的搜索引擎似乎不区分大小写。不过,他们可能无法将 ß 和 ẞ 视为彼此等价以及 ss 和 SS。我将添加一个关于在客户端做事的注释。
  • 从昨天开始,Internet Explorer 9 和 10 是第一批能够做到这一点的浏览器(现在官方有一个很大的书面德语)
猜你喜欢
  • 2017-10-31
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2015-01-22
  • 2012-05-08
相关资源
最近更新 更多