您尚未登录。

#1 2016-08-29 16:48:14

tedaz
会员
所在地: Greater China
注册时间: 2016-08-29
帖子: 5

为什么Opera浏览器不能显示中文汉字呢?

请看下面的截图,在相同的系统设置下,Chromium,Firefox和Konqueror浏览器都已经正常显示汉字了。
惟独Opera浏览器只能显示方块乱码。
这是什么问题?

已经安装了Google Noto CJK字体。
因为这个操作系统是给老外用的,所以系统菜单必须保持为英文,也就是LANG, LANGUAGE等环境变量需要保持en_US。这个老外需要看一些中文和日文的网页和文档。
现在最让人困惑的是,同样的系统设置和字体,为什么各个浏览器都能显示汉字了,惟独Opera不能显示汉字?
难道是Opera不支持多语种吗?

https://1.bp.blogspot.com/-SLV8BPVK8eQ/ … -00-30.png

离线

#2 2016-08-29 21:50:15

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: 为什么Opera浏览器不能显示中文汉字呢?

咦,难道 Opera 也不用 fontconfig 的?

离线

#3 2016-08-29 21:58:13

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: 为什么Opera浏览器不能显示中文汉字呢?

我试了一下,在英文 locale 下 opera 能够正确显示中文啊。你安装 wqy-zenhei 试试呢?

离线

#4 2016-08-30 09:05:23

tedaz
会员
所在地: Greater China
注册时间: 2016-08-29
帖子: 5

Re: 为什么Opera浏览器不能显示中文汉字呢?

依云 说:

我试了一下,在英文 locale 下 opera 能够正确显示中文啊。你安装 wqy-zenhei 试试呢?

现在的情况是,同样的系统设置和字体,其他浏览器都能正常显示汉字;惟独Opera不行,猜测很可能是Opera的问题,但是不知道应该修改什么东西。
已经安装了wqy zenhei和wqy microhei,但是依然不管用。

Arch的wiki说Opera有bug,Opera会强制忽略Opera设置菜单中的字体设置,同时也忽略系统的字体设置,然后有Opera的核心代码“智能”选择字体。
智能过头了,Opera连自己设置菜单中的字体都会忽略。如何才能强制Opera使用系统字体呢?

反过来看,你的Opera无论如何都无法出现乱码,这其实也是问题,因为在你的系统上它会坚持选择中文,如论你如何修改都得不到乱码。
Chromium,Firefox都是可控的,通过修改设置或卸载字体,就可以得到乱码;反之,修改设置并安装字体就可以解决乱码。

Opera Linux版完全就是无法控制啊。

离线

#5 2016-08-30 09:32:07

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: 为什么Opera浏览器不能显示中文汉字呢?

tedaz 说:

反过来看,你的Opera无论如何都无法出现乱码,这其实也是问题,因为在你的系统上它会坚持选择中文,如论你如何修改都得不到乱码。
Chromium,Firefox都是可控的,通过修改设置或卸载字体,就可以得到乱码;反之,修改设置并安装字体就可以解决乱码。

不是。我要得到乱码,得卸载所有中文字体。不管 locale 为何,fontconfig 都会尽力显示它而避免留下方框。

离线

#6 2016-08-30 10:21:04

tedaz
会员
所在地: Greater China
注册时间: 2016-08-29
帖子: 5

Re: 为什么Opera浏览器不能显示中文汉字呢?

依云 说:
tedaz 说:

反过来看,你的Opera无论如何都无法出现乱码,这其实也是问题,因为在你的系统上它会坚持选择中文,如论你如何修改都得不到乱码。
Chromium,Firefox都是可控的,通过修改设置或卸载字体,就可以得到乱码;反之,修改设置并安装字体就可以解决乱码。

不是。我要得到乱码,得卸载所有中文字体。不管 locale 为何,fontconfig 都会尽力显示它而避免留下方框。

两个问题:
首先,卸载所有中文字体肯定会导致乱码,问题是你无法保证chromium正常显示汉字的情况下,通过修改设置让Opera乱码,所以这还是opera的问题,不是系统的问题。
其次,为了改善渲染效果,安装了infinality,无法使用fontconfig了,有什么替代的办法吗?(我依然觉得这个fontconfig无关)

离线

#7 2016-08-30 12:24:13

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: 为什么Opera浏览器不能显示中文汉字呢?

我并不会修改配置让任意使用 fontconfig 的程序显示方框而不影响其它程序。

你安装 fontconfig-infinality?

离线

#8 2016-08-30 12:33:26

tedaz
会员
所在地: Greater China
注册时间: 2016-08-29
帖子: 5

Re: 为什么Opera浏览器不能显示中文汉字呢?

依云 说:

我并不会修改配置让任意使用 fontconfig 的程序显示方框而不影响其它程序。

你安装 fontconfig-infinality?

对的,fontconfig-infinality。
现在的问题是,即使设置了LANG=zh_CN,echo显示依然是C,这是什么情况?

离线

#9 2016-08-30 13:16:48

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,432
个人网站

Re: 为什么Opera浏览器不能显示中文汉字呢?

没设对呗……你是怎么设置的?

离线

#10 2016-08-30 13:19:23

tedaz
会员
所在地: Greater China
注册时间: 2016-08-29
帖子: 5

Re: 为什么Opera浏览器不能显示中文汉字呢?

依云 说:

没设对呗……你是怎么设置的?

infinality应该不影响区域和语言吧,fc-presets set,然后选择3(ms)。

nano /etc/locale.gen
取消注释
en_US.UTF-8
zh_CN.UTF-8
zh_TW.UTF-8

locale-gen

nano /etc/locale.conf
LANG=en_US.UTF-8

nano ~/.xinitrc
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_CTYPE=en_US.UTF-8

nano ~/.xprofile
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_CTYPE=en_US.UTF-8

离线

页脚