zoukankan      html  css  js  c++  java
  • elementary OS下netbeans中文乱码的问题

    系统崩溃了,于是就想试试elementary os

    elementary OS界面十分美观,并且使用ubuntu内核,完美支持ubuntu资源,所以我想试一下,装了以后,发现浏览器和邮件客户端很鸡肋,拆卸后装上chrome和thunderbird,然后装各种软件,但是在启动netbeans后发现,软件上的中文完全乱码了,悲剧。在网上查了很多资料,都不行,要放弃的时候发现了这篇文章,尝试后发现完美解决,突然就觉得很可悲,网上流传最多的竟然是错误的内容,大家以讹传讹,讽刺啊!

    没有下载那个字体deb,使用了sudo apt-get install ttf-arphic-uming安装

    另,此系统问题很多,不建议在生产环境使用,举例说明

    tortoisehg使用中点击左侧关闭按钮和菜单栏右键关闭无法关闭

    netbeans菜单中无法点击,快捷键无法创建项目等等

    发现了上面这两个就受不了了,准备还是换回debian

    附原文:

    当我在ubuntu 11.04中安装netbeans 7.0的时候,出现一个奇怪的现象,启动netbeans中,发现很多中文字无法显示,直接显示一个方框。很显然是没有找到某些字的显示数据,但是奇怪的 是有些汉字可以显示,真神奇,难道netbeans所用到的字库居然不全吗?
    
    而 ubuntu可以正常显示汉字,说明ubuntu本身的字库应该是没问题到。那么问题出在什么地方呢?
    
    答案是:JRE
    
    netbean是用java写的,它的运行是必须要依靠JRE的,这个大家都知道。而JRE使用的字体是依靠JRE本身的配置文件来决定在系统中和什么字体文件对应的。
    
    因此判定是这种对应出了问题。
    
    根据Java的官方文档(http://download.oracle.com/javase/1.5.0/docs/guide/intl /fontconfig.html#loading),字体对应配置文件是位于jre/lib下面,有两种形式,一种是src文件,一种是bfc文件。 bfc文件是二进制的,系统预定义的,所以我们需要修改的是src文件,到这个目录,一看,如下图:
    
     
    
    看到这些文件名,基本也明白了个大概。看看fontconfig.OS.version.properties.src这种格式就应该明白,这是不 同操作系统平台的配置文件,jre会根据操作系统的不同而自动选择对应的配置文件,因此,我打开了ubuntu 的对应文件,看第一行:
    
    allfonts.chinese-cn-iso10646=-arphic-ar pl uming cn-light-r-normal--*-%d-*-*-c-*-iso10646-1
    
    这里指定了jre用到逻辑字体和物理字体的对应关系,等号左边就是jre用的逻辑字体,而等号右边就是需要使用的物理字体了。
    
    只是这个物理字体看起来跟火星文差不多,但是这个火星文可是正宗的X logical font description (XLFD)描述方式,这里不多说了,想了解的读者可以自己去google一下即可。
    
    然后再看配置文件# Font File Names部分,其中有一行:
    
    filename.-arphic-ar_pl_uming_cn-light-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttc
    
    这是上面描述的物理字体和系统字体文件的对应描述。
    
    左边不就是上面我们看着像火星文的物理字体名称吗?正好不知道哪儿去找这个字体,这下不就有答案了。连目录都告诉你了。
    
    立刻跑到/usr/share/fonts/truetype目录去一看,不要说uming.ttc,连arphic这个目录都没有!
    
    这下就面临两个选择:
    
    1.修改配置文件,让他指向系统有的字体文件。
    
    也就是修改:/usr/share/fonts/truetype/arphic/uming.ttc这部分,修改成存在的字体文件名称即可。
    
    2.安装一个uming.tcc字体文件。
    
    由于uming.tcc字体是比较有名的,是一个高质量的中文字库。因此我还是决定选择第二种方案。
    
    到网上一goole,立刻找到了下载地址:http://ftp.br.debian.org/debian/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.20080216.1-3_all.deb
    
    下载回来之后:sudo dpkg -i ttf-arphic-uming_0.2.20080216.1-3_all.deb
    
    安装顺利完成,这个时候再跑到/usr/share/fonts/truetype目录去一看,这下有arphic这个目录了,然后打开目录一看,uming.ttc就在那里!
    
    马上打开netbeans,漫长的等待,终于看到了窗口,一切都有了,字体看着确实很美,不愧是arphic 产品啊。
    
    自此问题完美的解决了,不管版本如何变化,都可以按照这个方式去解决问题。
    
    网上一些文章说的cp字体到jre/lib/fonts/fallback,很多人不懂原理。fallback的目录是jre字体后备目录,意思就 是按照正常配置找不到字体信息,就会在这个目录下按照配置文件设定的顺序到字体文件中去寻找。用这个方式有两个问题,一个是效率低下。二是字体不统一,会 出现例如:文件这个词,文是楷体,件是黑体的“壮观”景象!为什么?因为文字在楷体字库找到了,但是这个字库找不到件字,于是就在fallback中到黑 体字库去找,并且找到。这种现象就神奇的出现了!
    
    所以这个方式其实是属于歪打正着的方法,很多人糊里糊涂显示正常了,也没有搞懂原理。而另外一些人就会出现字体不统一到情况。
    
    当然,上面所说的一切,在windows上均不会发生。因为windows比较统一,所以配置文件的配置一定可以正常工作,不会出现类似linux的连字体文件都可能找不到的情况。这也证明了规范,统一在软件中的重要性。
    

      

  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/quinnxu/p/3275133.html
Copyright © 2011-2022 走看看