首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用UTF8编码的重音标记不正确的放置(仅限于西里尔词)

使用UTF8编码的重音标记不正确的放置(仅限于西里尔词)
EN

Stack Overflow用户
提问于 2012-07-15 11:52:20
回答 3查看 1.9K关注 0票数 3

我正在开发带有重音标记的西里尔文字的网页。要放置重音标记,我使用utf8字符U0301 (结合尖锐重音)。在我已经使用过的每一个编辑器和每一个与西里尔相关的网页上,我已经看到这个重音标记显示在文字中这个字符前面的字母上面。我的问题是,在我的页面上,这个字符显示在字母上面,字母放在文字的标记后面。更重要的是,这种不正确的行为只能在西里尔词上观察到。用通常的拉丁语正确地显示它。

我设置了每个与编码相关的标头。

编辑

这个问题似乎只出现在Firefox上(我使用13.0.1版本)。当我使用Chrome时,重音标记将被正确显示。

EN

回答 3

Stack Overflow用户

发布于 2012-07-15 13:39:51

根据对不同字体的实验,最好是在不同的平台上,或者在不同的浏览器上,选择一个合适的字体列表,用于文本的font-family规则。您可以使用不同的字体设置在您最喜欢的文字处理程序(或编辑器)中测试字体;结果不一定与在web浏览器中相同,但通常相似。例如,卡利布里和阿里尔看上去还行,而衬线一侧的寒武纪也一样(新罗马时代的U+0301没有问题,但除非分辨率相当高,否则一般渲染得不好)。

还可以考虑使用一些合适的字体作为web字体(通过@font face)。

这听起来很麻烦,但这确实是一种实用的方法。问题有三个方面:

  1. 在某些字体中,U+0301完全是错误的,或者是有点错误。例如,在佐治亚州(一种通用的OK字体),U+0301出现在基本字符的右边,就好像它根本不是一个组合符号,而是一个单独的符号。在“信使新”中,它放在下一个角色之上。在Constantia和FreeSerif中,它放置得太正确了,尽管仍然可以识别为一个透明标记。
  2. 有些字体完全缺乏U+0301,迫使浏览器将其从大写字母以外的字体中提取出来。不用说,这可能会造成混乱(或者你可能会逃脱,如果它恰好适合)。
  3. 浏览器和其他程序在处理组合标记方面存在差异。你对此无能为力。即使对于具有良好U+0301实现的字体,旧的浏览器也很容易产生不好的结果。原因是正确地放置一个对话框标记是一个复杂的操作符:程序需要访问有关基本字符的信息,以便在小写的о上放置与大写的О不同的位置。

我不知道为什么在Firefox上得到的结果与Chrome上的结果不同,除非您将字体留给默认设置,并且浏览器使用不同的默认值。

当U+0301与拉丁字母结合时,U+0301与西里尔字母组合失败的原因可能是完全不同的处理方法。浏览器可以(而且经常)将字母和组合符号的组合呈现为单个字形,对应于所谓的预组合字符。因此,如果浏览器看到ó ( o是拉丁字母),它会将其内部映射到单个字符“ó”U+00F3,该字符包含在最常用的字体中。

作为一个排版细节,当以非常好的质量(我们通常买不起.)为目标时,像a,e,o,y这样的拉丁字母应该与相同文本中的西里尔字母(按形状)完全一样。这些设计在任何体面的字体中都是相同的。但不幸的是,当添加口音时,这种情况可能会发生变化。例如,在卡里布里语中,о́(西里尔语与急性语)的口音与ó(拉丁语为急性语)的口音不同。这是字体中的一个设计缺陷。(但在典型的复制文本大小中,这种差异几乎不明显。)

票数 2
EN

Stack Overflow用户

发布于 2012-07-15 12:14:49

可能与您在每个浏览器上设置的默认字体和/或浏览器本身的默认样式有关?我试过这款JS小提琴 --在带有时代色彩的火狐中,它的口音是完全一致的,但与Arial的搭配不错,但有点偏右。

另一方面,Chrome可以与Arial一起使用,但“时代”( Times )却非常向右移动。

您是否尝试过调整字体系列、线条高度、字体大小等以查看这是否会影响问题?

编辑:--另外,只需阅读关于宾州州立大学网站的建议

像Times和乔治亚这样的字体在Windows中包含西里尔字母,但在Macintosh上,它们可能只包含在苹果的"CY“Cyrillic字体中,比如"Times”。 .serifcyr {字体-家族:“时代CY",”时代新罗马“,.noserifcyr }.noserifcyr{字体-家族:”日内瓦CY","Helvetica CY","Arial",sans-serif }

票数 1
EN

Stack Overflow用户

发布于 2015-08-05 21:11:26

我使用过谷歌字体服务的字体机器人,它也有同样的问题--重音放置是错误的。

为了解决这个问题,我已经下载了这个字体(ttf版本)到我的电脑,安装,打开照片软管,并确保实际口音是正确的!然后我上传字体到fontsquirrel.com服务,并转换成我自己的网页字体,然后重音是固定的!除了上面的і字母。但是,这总比什么都没有好。

提示--如果您有几个字体权重,那么在fontsquirrel.com上选择expert.并检查样式链接--它将组成css,这样您将有一个具有不同权重的字体名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11491642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档