作者rickhsu (TINNMINN/RBSAUD)
看板Programming
标题[转录]Re: 有关 PTT 是否能输入韩文的问题
时间Thu Feb 28 22:51:42 2008
※ [本文转录自 HANGUKMAL 看板]
作者: albyu () 看板: HANGUKMAL
标题: Re: 有关 PTT 是否能输入韩文的问题
时间: Thu Feb 28 18:01:49 2008
看来大家对这个能够显示韩文的 client 的需求倒是挺迫切的
虽然我现在能够控制 PCMan X 让它在某些情况下改用 EUC-KR 来显示韩文
但目前仍属实验性的阶段,也还不能直接用输入法在 PCMan X 输入韩文
那张截图上的韩文,是我先用别的 client 打进去,PCMan X 目前只能显示而已
关於输入韩文的部分我现在正在研究中,已有了些许眉目
还有一个重要的问题,PCMan X 目前仅能在 Linux 和 FreeBSD 上面运作
由於我个人并不使用微软 Windows 作业系统
因此在 Windows 平台上的 client 开发可能暂时不会这麽快动手
我预计会从 Windows 上的 Open PCMan 着手来改
不过 Open PCMan 和 PCMan X 是完全不同的东西
内部的程式码和编码处理架构截然不同,等於是要写两份程式
如果有人要参与的话,我想基本的能力可能还是需要熟悉 C++ 程式语言
因为 PCMan X 和 Open PCMan 都是用 C++ 撰写的
至少要能够看懂 C++ 的语法,才能了解它的处理方式并着手修改
关於我上一篇文章,为什麽能够让中文和韩文同时出现,我简单说明一下
基本上我的作法很简单,我先找出 PCMan X 的程式码里面
哪个部分是负责将 BIG-5 转换成 UTF-8 让系统可以显示出中文来
而後我再加了几行程式码,让 PCMan X 在绘制萤幕的某些地方的文字时
不是从 BIG-5 转到 UTF-8,而是从韩文的 EUC-KR 编码转到 UTF-8
这样,只要 EUC-KR 的字串出现在某些位置
PCMan X 就会把它们从 EUC-KR 转成 UTF-8,从而显示出正常的韩文出来
不过,光是只有在特定位置显示出韩文还是不够
主要还有几件事情要做:
一、设计编码切换的 control sequence
这是要通知 client 的终端机何时要切换到韩文,何时要回到中文的控制码
我正在考虑的是,是不是要利用 ANSI 控制码的方式来控制编码的切换
也就是设计一个特殊的 ANSI 控制码,当 client 读到这个控制码时
就会进行显示编码的切换
若要设计成具有通用性,则控制码本身最好能带有欲切换的编码名称
比如说名称为 EUC-KR 就能切到韩文,名称为 KOI-8 就能切到俄文等等
这个地方是未来使用上最重要的部分,可能要先有完善的规画
二、编码切换控制码的处理函式
订定了切换的控制码,接下来就是要写程式,修改 PCMan X
让它能够认得切换控制码,并做显示编码的切换
三、输入文字之编码切换
上面的步骤仅实作让终端机能够显示出韩文,但还不能输入韩文
还需要再修改 PCMan X 接受使用者输入内容时的编码转换的程式部分
这部分应该是最大的困难点之所在
终端机必须要能够知道使用者现在是在输入哪一种文字
可能的方法有几个,一个是设计一个选单,让使用者选择要输入何种文字
另一个方法就是自动侦测,不过相对地难度也高
现在我们在 PCMan、KKMan、PieTTY 等程式里面不能输入韩文的原因就在这里
系统接收到韩文的输入,但没办法把它转成 BIG-5 的编码
这部分可能要花不少时间来实作
有兴趣的人,或是有任何建议,非常欢迎一起来讨论
有能力开发 Windows 程式的人,请不吝参与修改 Open PCMan 的行列
因为我实在是不大会使用 Windows.....
希望在 BBS 能够自由自在输入各种语言文字的那天早一点到来啊!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.80.33
1F:→ rickhsu:我能帮上忙的就是转文啦.转了Pttsuggest和Pcman版 02/28 18:15
2F:→ rickhsu:我有个想法..其实客户端只要能够告知使用者现在是位於 02/28 18:28
3F:推 sdfg246810:很好很强大.....真佩服阿~~~ 02/28 18:29
4F:→ rickhsu:韩文区..中文输入会变成乱码请切换至韩文输入法 02/28 18:29
5F:→ rickhsu:至於在中文区本来就不能输入韩文..所以也还好... 02/28 18:30
6F:→ rickhsu:也就可以单纯化..先让使用者的大脑来切输入法 02/28 18:31
7F:→ rickhsu:这样第一个版本堪用会快的多... 02/28 18:32
8F:→ rickhsu:我还想到要是编辑器所见及所得,那代表标签必须有两种. 02/28 18:38
9F:→ rickhsu:一个是编辑用的a另一种是显示用的b.越想越复杂... 02/28 18:39
10F:→ rickhsu:万事起头难.希望albyu能打造堪用品..windows应该有人会吧 02/28 18:44
11F:推 changwenchi:我直接找我学弟来会不会比较快...把他抓过来问当初到 02/28 19:12
12F:推 changwenchi:底是怎麽写的... 02/28 19:13
13F:推 changwenchi:我直觉觉得显示不会是问题,但是输入法会是个问题... 02/28 19:27
14F:推 changwenchi:对吗? 02/28 19:28
15F:推 elvies:对不起~ 我电脑很弱 Q_____________Q 02/28 20:06
16F:→ elvies:精神支持!!!!!!!!!!!!加油!!!!Fighting!!! 02/28 20:06
17F:推 changwenchi:我一定要成功go 02/28 20:21
18F:推 leader81:我也只能精神上支持 对程式语言不懂 呵 02/28 20:25
19F:推 Fred:请不要忘记 MAC 的使用者... AlienBBS 也顺便一下 >"< 02/28 22:11
20F:→ albyu:Mac 我真的没办法,没有 Mac 机器..... 02/28 22:19
21F:→ rickhsu:先完成linux的...mac现在也是unix like只要opensource 02/28 22:20
22F:→ rickhsu:就会有人去移植的啦..反倒是windows还比较难... 02/28 22:21
23F:→ rickhsu:输入法应该是可解决的pietty也可以用内建输入法输入啊 02/28 22:24
24F:→ rickhsu:视窗上的复制贴上判断才困难吧.中韩从视窗上要贴到bbs 02/28 22:26
25F:→ albyu:Windows 会自己做 Unicode 到程式所使用的 locale 编码转换 02/28 22:28
26F:→ rickhsu:就不太可能了..没有标签可供程式作判断.. 02/28 22:28
27F:→ albyu:因此,你只要确定你的程式使用的编码有包含韩文就可以了 02/28 22:29
28F:→ albyu:如果你用 PieTTY,但编码设成 BIG-5 是没办法输入韩文的 02/28 22:30
29F:→ albyu:复制贴上的部分还是有一样的问题,不是要使用者自己决定编码 02/28 22:31
30F:→ albyu:就是要写 encoding detection 的程式来辨断 orz 02/28 22:32
31F:→ rickhsu:作编码侦测听就觉得是大工程了,,.我觉得先让使用者决定 02/28 22:35
32F:→ rickhsu:但是尽量设定成单键决定应该就堪用了..先求能用最重要... 02/28 22:37
33F:→ rickhsu:可以做到按某键就切换编码同时帮你呼叫对应的输入法吗? 02/28 22:39
34F:→ rickhsu:说实在的我也不太懂...想能够用就很高兴了.. 02/28 22:46
35F:→ rickhsu:技术细节就交给albyu了.. 02/28 22:47
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.105.201.25