蒙古论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 645|回复: 3

蒙语编码及信息处理相关

[复制链接]
发表于 2007-6-9 16:00:18 | 显示全部楼层 |阅读模式
本类信息精华


本类信息汇总
发帖人:雪花飞舞 (图格)  内容:  讨论蒙古文名义字符自动变化时断字的问题
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D9

发帖人:enkhe  (图格)  内容: big5中有少数民族文字?
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D6

发帖人: 死机了怎么办  内容: 请教:关于Unicode
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D4

发帖人:enkhe   内容: ultra edit不能编辑unicode蒙古字
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D2

发帖人:enkhe   内容: Unicode蒙古字的codepage和charset是什么?
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D2

发帖人:雪花飞舞 (图格)   内容: 讨论蒙古文信息处理的前途
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D9

发帖人:ganjike   内容: 网友提问的蒙文信息化问题
原帖链接:http://www.mglzaluus.com/bbs/vie ... &extra=page%3D5

整理帖目录
二楼(#2)蒙古文名义字符自动变化时断字的问题
三楼(#3)ultra edit不能编辑unicode蒙古字
四楼(#4)Unicode蒙古字的codepage和charset是什么?

[ 本帖最后由 蓝丸 于 2007-6-9 17:00 编辑 ]
 楼主| 发表于 2007-6-9 16:05:41 | 显示全部楼层
原帖:蒙古文名义字符自动变化时断字的问题

雪花飞舞 (图格) :
蒙古文名义字符自动变化时断字在应用系统中有断字的现象,只有在office2007和笔记本中显示正常。它的处理应该与字体有关。OpenType的变形显现描述与字模模型有关。
  蒙古文名义字符自动变化时断字的问题应该改动OpenType字体可解决,而且OpenType字体公开的,改动又不影响版权。

ganjike :
有时间和机会的话,一定要和你交流一下。
有时候文字描述的总是说不清楚。(我的语文学的不好)

断字的现象是由个体软件造成的,不是系统不支持造成的。

字体只是一种规范,他应该是描述一种存储格式,还有存储那些元素。
只要在记事本中支持的字体,就表明操作系统是支持的。应该记事本是操作系统提供的
最基本的软件。而写字板软件就不是用操作系统的基本api做的。
因为很多软件在显示文字的时候需要改变大小或者与图片一起显示,这样他就不能使用操作系统的
基本编程接口。他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。
所以他们在 显示文字的时候中间断开也没有问题,而这样的做法对显示蒙文将会出现致命的断字现象。

像写字板,qq,msn,word,wps等软件都是这样的。
在我写的输入法中就专门有个参数控制字母的竖向的间距,不同字体不同字号下这个参数不同。
这个参数不对了就出现断字现象。可能我对字体的格式了解不够,也许字体中有间距这个参数,
不用自己算,直接使用就行了。如果字体中有这个参数(就像你说的把这个数据改一下),但是
也要软件中支持这个参数才行。

不过文字处理软件像word这样应用非常广的软件,必须自己显示字符,否则好多文字特效功能不能实现。
所以主要还是等应用软件支持字体显示。

而仅仅是显示和阅读蒙文的话,记事本和 ie浏览器 足够了。

雪花飞舞 (图格) :
.................................................................................
QUOTE:
原帖由 ganjike 于 2006-7-10 09:59 发表
字体只是一种规范,他应该是描述一种存储格式,还有存储那些元素。
..........................................................................

字体只是编码的显现形式,它是编码的显现图像的一种描述形式(点阵或矢量),文档中存储是编码和排版信息。排版信息包括字体,间距等等。
............................................................................................................
QUOTE:
原帖由 ganjike 于 2006-7-10 09:59 发表
在我写的输入法中就专门有个参数控制字母的竖向的间距,不同字体不同字号下这个参数不同。
这个参数不对了就出现断字现象。可能我对字体的格式了解不够,也许字体中有间距这个参数,
不用自己算,直接使用就行了。如果字体中有这个参数(就像你说的把这个数据改一下),但是
也要软件中支持这个参数才行。
...........................................................................................

实际上windows 就是这样显示。所有的变成都一样。我是希望字体中有这个参数更合理一些或兼容一些。
...............................................................................................
QUOTE:
原帖由 ganjike 于 2006-7-10 09:59 发表
他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。
.............................................................................................

我不同意这个观点,word,WPS 等所有的编辑软件都会调整空格的宽度来控制断字和对付标点符号的跑位。
  
雪花飞舞 (图格):
............................................................................................
QUOTE:
原帖由 ganjike 于 2006-7-10 09:59 发表
而仅仅是显示和阅读蒙文的话,记事本和 ie浏览器 足够了
...............................................................................................

笔记本没事就是说 MFC的 CRichEdit 没有问题,从 CRichEdit 继承一个新类,能竖着显示蒙古文才行。
MFC的 CEdit ,CLable 类没有问题的话,那更好。

现在的软件都不巴不得都变成浏览器,浏览器中正确显示太重要了。

ganjike
.............................................................................................
QUOTE:
原帖由 ganjike 于 2006-7-10 09:59 发表
他们都是从字体中提取数据自己显示,而像汉字,英文字母都不需要考虑连写的问题。
我不同意这个观点,word,WPS 等所有的编辑软件都会调整空格的宽度来控制断字和对付标点符号的跑位。
..................................................................................................

我说的连写是指两个字母之间的距离不影响字母的显示,只是影响美观(排版),而不会出现错误。
因为蒙文是连写的所以断字就表示文字错了。
.................................................................................................................
QUOTE:
笔记本没事就是说 MFC的 CRichEdit 没有问题,从 CRichEdit 继承一个新类,能竖着显示蒙古文才行。
MFC的 CEdit ,CLable 类没有问题的话,那更好。

现在的软件都不巴不得都变成浏览器,浏览器中正确显示太重要了。
......................................................................................................

没有具体些个程序试试。
但是估计 CEdit, CLable 等没有问题。 CRichedit肯定有问题。因为记事本可以认为是具有多行属性的cedit.
写字板是CRichedit 做的。

不过你可以自己写个CRichedit类。在OnPaint 里把每个蒙文词的信息(设置成不同的字体)保存起来。
在每个词显示的时候注意一下间距,保证他们连在一起就行了。还有如果到了竖行的尾部,
判断一下是否够长,不够的话,整个词移动到下一个竖行。这样就不会有行尾断字了。
这样做多了,就能实现简单的蒙文word软件了。要实现简单的这种软件技术上不难,但有一定的工作量,
和需要一定的这方面的经验。

但是要做好了,可困难了。
 楼主| 发表于 2007-6-9 16:09:41 | 显示全部楼层
原帖:ultra edit不能编辑unicode蒙古字

enkhe :
ultra edit不能编辑unicode蒙古字能显示,但想要文本修改就不能了,当然能2进制修改

很多软件怎么不认蒙古字啊? photoshop, adobe maker, adobe acrobat, exescope....

几乎没有一个能处理unicode蒙古字的非微软软件.

我看到的2进制编辑工具中没有一个支持蒙古字, vc++6, winhex,

不会用vc++.net 进行2进制修改........ vb.net很轻松能做unicode蒙古字程序(我只试过介面)

ganjike :
vc6肯定不支持文本方式编辑蒙文。
在金山词霸中能录入蒙文。在巡雷中就不能录入蒙文。

当你用二进制编辑蒙文的时候就,没有支持不支持的说法了,在编辑的时候
都支持,你只要注意高字节在前还是低字节在前就行了。

估计你说的不支持是编辑完后显示不出来,显示不出来并不等于不支持,显示不出来
是因为显示的时候没有按unicode来显示。比如ultraedit 当你先另存为utf-16 文件在看的时候
就能显示出来了。ultraedit缺省用ascii处理,这时候不支持,当你打开个unicode文件的时候,
用unicode处理显示,这时候就能支持了。

在vs2005上支持的很好,所以估计是所有.net平台都能支持的很好。
比如我可以在vs2005上定义一个双引号内为蒙文的字符串常量。

在软件中能否支持蒙文,如何支持蒙文要仔细看看微软的国际化开发的文档才能更清楚。
 楼主| 发表于 2007-6-9 16:11:37 | 显示全部楼层
原帖:Unicode蒙古字的codepage和charset是什么?

enkhe :
Unicode蒙古字的codepage和charset是什么?
在ultraEdit下能显示蒙古字,但不能用ultraEdit编写蒙古字为什么呢?

photoshop中都不能显示,但其它的unicode 字,如阿拉伯字,西立尔字没问题。。。。

我折腾了好长时间没找到蒙古字的codepage, charset等,vista下也一样,好象非unicode程序不什么直接处理unicode文字,必xu一个codepage???


如果真没有那有没有办法创建??

ganjike :
ultraEdit 中可以编辑蒙古字,不过你先要把文本文件存储成unicode文本文件。
我在微软的msdn 上查到过蒙古字的 codepage charset

Mongolian (Traditional Mongolian, PRC)
0850 Codepage info  
LCID 0850
Locale name  Mongolian (Traditional Mongolian, PRC)
Language-English name Mongolian (Traditional Mongolian)
Language-native name ᠮᠣᠩᠭᠤᠯ ᠬᠡᠯᠡ (ᠪᠦᠭᠦᠳᠡ ᠨᠠᠢᠷᠠᠮᠳᠠᠬᠤ ᠳᠤᠮᠳᠠᠳᠤ ᠠᠷᠠᠳ ᠣᠯᠣᠰ)
ANSI codepage 0
OEM codepage 1
http://www.microsoft.com/globald ... ;OS=Windows%20Vista


enkhe :
Appreciate...

我还在zuo磨有没有办法让那些non-unicode编写的工具直接认识蒙古字,,

        在控制面版里“选择一个语言匹配非unicode。。。。”里选汉语结果其它unicode字在记事本里
        不得以ANSI保存,选择蒙古西立尔字结果汉字变成UNICODE字符,不能以ANSI保存,那些汉语界面
        程序面目也全变成问号。我换了4~5种语言同样,ANSI编码好象电脑里就不是American national
        standard institute了,Windows里,在中文下ANSI就是CNSI,蒙语下ansi 就是mnsi....

        我在控制面版为非unicode程序没有找到 蒙古语。 在vista里也没有,怎么办呢?除了MIcrosoft,
        没看见过完全unicode的程序,有些程序好象用了Windows标准控件,如它们的menu bar在什么语言
        环境下都能显示中文,但它们提示信息经常是问号。。。

        有没有办法让蒙古字变成“本地语言”,也就是能以ANSI编码的呢?怎么实现呢?

ganjike :
猜测的,不一定对。现在没有i时间查找这方面的资料。给你一个思路吧。

你说的其他unicode好使,是因为那些unicode编码范围windows能够识别,估计是有
设置,这样当你输入这些编码的时候能按unicode方式显示且能找到相应的字体。

这你可以参考当前的蒙文输入法像mengkeli,saiyin 都做了个eudc.tte  在注册表hkcu/eudc
他们把自己的编码注册到系统,这样系统能自动识别这些编码并能正确找到字体显示出来。

你查查这个程序 AppLocale,看他怎么做的。

enkhe :
蒙古字没有codepape,我正在想,现在很多软件还是ANSI版,假如PhotoShop不处理Unicode文字,就算是Unicode也得找到相应的ANSI值再处理....

我在注册表里看见nls文件,同时也看见system32下的很多nls文件,发现那就是Natioanl language support文件,也查到,那里包含ANSI转换表, 时间日期,等等信息,

我用ULTRAEDIT查看c_936发现里边有汉字按笔hua数排列,,,,

试着修改蒙科立的EUDC,还有其指向的MenkSoft.tte文件,只影响蒙科立字变空白,不是问号,也可以按ANSI编码...听说蒙科立代码用了unicode中的private use area,,
正在弄清....

最后,到底有没有办法没有ANSI CodePage的Unicode蒙古字与ANSI程序交流....
http://msdn2.microsoft.com/en-us/library/ms776260.aspx

Locale identifier                   0x0850
locale                        Windows Vista and later: Mongolian (PRC)
locale name                mn-Mong-CN
Script tag                                Mong
ANSI code page                Unicode only
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|蒙古论坛

GMT+8, 2026-7-15 15:27 , Processed in 0.011072 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表