蒙古天骄吧 关注:21,172贴子:1,047,259
  • 5回复贴,共1

【Hoh Mongol】贴吧无法正确显示蒙古文的真正原因

取消只看楼主收藏回复

即使安装了蒙古文输入法和蒙古文字体(Unicode)标准编码,百度贴吧依然无法正确显示蒙古文。经过多次探索和测试,楼主认为,贴吧无法正确显示蒙古文的真正原因是:“贴吧的屏蔽功能”!!!
输入和显示蒙古文的基本原理是这样的(其他文字也是一样):
0.【编码】Unicode将蒙古文进行编码,每个编码都对应一个蒙古文字符。
1.【输入】通过输入法输入蒙古文的过程,其实就是调取Unicode蒙古文编码。
2.【显示】显示蒙古文的过程,其实就是将一串蒙古文编码,还原成蒙古文。
蒙古文在编码过程中,使用到了控制字符,一共有7个,其中4个是蒙古文特有控制字符FVS1、FVS2、FVS3、MVS(U180B-180E),另外3个是一般控制字符NNBSP(U202F)、ZWJ(U200D)ZWNJ(U200C)。这些字符在输入时是隐形的,属于非文本字符!!!但是,这些控制字符特别重要,它们控制着蒙古文的字形变化。O键盘上控制字符的布局:


其中,常用的控制字符有2个,即:
1.MVS控制字符,它主要用于分写左撇的输入和显示。
2.NNBSP控制字符,它主要用于-un, -iyan等无字冠的附加成分的输入和显示。


回归主题。
【输入】蒙古文:如果自己的设备无法输入蒙古文,那是因为没有按照蒙古文输入法,所以,无法调取蒙古文的编码。
【显示】蒙古文:显示蒙古文包括两个方面:
1.在自己的设备上(离线)显示蒙古文。如果自己的设备输入蒙古文后无法显示,那是因为没有安装蒙古文字体,或者蒙古文字体存在问题。(推荐使用的蒙古文字体:1.蒙科立2015年3月份发布的新版字体:menk qagan tig.ttf;2.windows8系统自带蒙古文字体:mongolian baiti.ttf)
2.在第三方平台上(在线)显示蒙古文。前面说过,显示蒙古文其实是一个将Unicode编码转换成蒙古文字符的过程。
由于众所周知的原因!!!百度贴吧具有字符过滤机制,对于非文本字符的控制字符,会自动过滤掉。这就造成了编码的丢失,而控制字符的丢失,直接造成了蒙古文显示的错误!!!
楼主在自己的设备上输入和显示蒙古文完全没有问题:

而在贴吧平台上,则因为蒙古文控制字符被过滤,导致无法正确变形,从而显示错误。

对于不存在网络过滤功能的第三方网络平台,则完全不存在这样的问题。
目前,在QQ、微信、FB、Twitter等平台上输入和显示蒙古完全没有问题!!!


1楼2015-05-06 13:44回复
    要验证百度是否真的会过滤非文本的控制字符,其实很简单:
    我们都知道,段落前要空出2个汉字的空白,以达到首行缩进2个字符的效果,因此,一般的做法连续敲击“空格键”,留出一定的空白。尽管我们这么做了,但是在贴吧中显示的时候,百度会将输入的“空格键”控制字符屏蔽掉,因此,还是无法达到首行缩进2个字符的效果。


    2楼2015-05-06 13:52
    回复
      现实情况就是这样,但总是有迂回的余地的,比如:
      1.对于输入无字冠的附加成分-un, -iyan等,可以先输入一个字干,再输入un、iyan等。
      2.对于分写左撇,楼主水平有限,没有想到有什么迂回的办法,即:不使用控制字符输入分写左撇。
      当然,从根本上来说,还要百度平台解除对蒙古文控制字符的屏蔽。


      4楼2015-05-06 14:05
      回复
        我们知道:蒙古文是一种常见的民族语言文字,至今不能在百度平台上正确输入显示。
        而其他6种:藏文、维吾尔文、哈萨克文、朝鲜文、彝文和壮文,都可以在百度平台上输入显示。


        5楼2015-05-06 14:05
        收起回复
          经过测试, 百度网页、新浪微博也存在字符过滤机制, 但是, 比贴吧稍好一些。
          没有屏蔽蒙古文专用的控制字符, 所以bain-a, bey-e等分写左撇还是蒙古正常显示的。
          但是, 还是屏蔽了一些普通的控制字符, 特别是屏蔽了用于无字冠的附加成分的控制字符NNBSP, 导致附加成分显示错误(多出了字冠)。


          来自Android客户端7楼2015-05-06 15:13
          回复


            来自Android客户端11楼2015-05-06 16:32
            收起回复