You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Chrome中控制变体选择器的字体回退行为

多字体日文显示的变体选择器回退问题

背景

我正在开发一款在Chrome上运行的应用,需使用大量日文字符字形,但无单款日文字体能覆盖全部所需字符。

已尝试方案

因此我尝试用两款及以上字体文件显示日文:优先使用IPAmj Mincho字体,IPAmj Mincho未实现的字形则用Harano Aji Mincho字体。

为此,我定义了两个font-face作为网页字体:

@font-face {
  font-family: "Harano Aji Mincho";
  /* src: url(远程资源地址) format("opentype"); */
  src: url(./HaranoAjiMincho-Regular.otf) format("opentype");
}

@font-face {
  font-family: "IPAmj Mincho";
  /* src: url(远程资源地址) format("truetype"); */
  src: url(./ipamjm.ttf) format("truetype");
}

并为HTML标签添加style="font-family:'IPAmj Mincho','Harano Aji Mincho'"样式。

问题

当IPAmj Mincho含基础字符字形,但不含带变体选择器的该字符字形时,HTML中带变体选择器的字符不会回退到Harano Aji Mincho的对应字形,而是显示IPAmj Mincho的基础字符字形。

示例:

  • IPAmj Mincho含U+29D4B的字形(𩵋, glyph fot U+29D4B),但不含带变体选择器U+E0101的Adobe-Japan1字符集对应字形(𩵋󠄁, glyph for U+29D4B,U+E0101,即U+29D4B, U+E0101)。
  • Harano Aji Mincho同时含U+29D4B和U+29D4B, U+E0101的字形。

此场景下,若标签指定style="font-family:'IPAmj Mincho','Harano Aji Mincho'",U+29D4B, U+E0101会显示IPAmj Mincho的U+29D4B字形,而非Harano Aji Mincho的对应变体字形。

问题咨询

是否有方法控制浏览器字体回退行为,使该场景下U+29D4B, U+E0101显示Harano Aji Mincho的对应字形?

补充说明

可为@font-face使用unicode-range属性,但存在问题:

  1. 仅能指定基础字符,Chrome 117.0.5938.149中指定变体选择器(如U+E0101)会被忽略。
  2. 需指定字体所有码点范围,IPAmj Mincho含58843个汉字,Harano Aji Mincho含1372个变体字形,逐个指定不现实。

若为Harano Aji Mincho指定unicode-range: U+29D4B,则U+29D4B和U+29D4B, U+E0101均用该字体显示,而我希望前者用IPAmj Mincho,后者用Harano Aji Mincho。


内容的提问来源于stack exchange,提问作者SATO Yusuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:21:01