看板Programming
标 题从 Thompson 的 ESC 与 "成功\n" 谈 tag-type
发信站中央大学松涛风情资讯站 (Mon Mar 12 10:06:09 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>发信人: tester@Evergreen (try or test), 信区: programming
> 先不谈这个扩充功能(extended machine)的问题, 先问: 电脑程式语言
> 碰到中文BIG5码是否能区分监别, 加以不同对待(这算扩充功能吧 !)的问题.
> 例如:
> char*f="敬祝成功\n 宏图大展\n";
> main()
> {
> printf(f,10);
> }
> 得到的显示结果是:
> 敬祝成功n 宏图大展
> 而不是
> 敬祝成功
> 宏图大展
> ================
如果只是要正确列印出来, 方法多得很, 不必要求这个 C compiler 认得
中文 BIG5 码, 这就是今天的现状.
但如果这个字串是要当 keyword 做 exactly search 时, 如 "成功大学"
而这字串里却有个 "\" 藏在里面, 後续的 search 程式是否会出错 ?
现在的中文域名, 如 "成功.tw" 就有类似的疑问, IETF 目前的解决方案
是 ACE (ASCII Code Encode), 相关的 RFC 有很多个, 主要的是 "xn--" 标
记开头的 punycode.
这个中文域名的概念如 "成功大学.tw" 是被先 pre-processing 转换为
xn--xfrw5m31b36k.tw 的英文字串, 因此不再有 ESC char 的问题, 接收的程
式也不再有 是否"非英文" 的问题, 因为已被包装为 xn-- 开头的 "全英数"
字串, 要拆开来看时就需要 post-processing , 还原或转换为使用者显示程式
对应的字形码别. 至於繁简体字形, 如果注册域名时, 指名繁或简的代表字是
那一字串就可从注册处的资料查出该转为那种对应的繁或简字形, 不查不转也
可以, 当然就是 xn-- 那串字符以 punycode 还原的 unicode 码字形.
如果要让 云林科大.tw 与 云林科大.tw 都能代表同一个网址, 目前的方
法就是负责中文域名注册与处理的单位必须把这两笔一同注册且指到同一个位
址.
把中文转换成英文程式原来认得的英文形式, 可以视为是将前/後处理模组
与中间模组使用一个特定英文界面与范围来沟通. 这里的 xn-- 是个特定的标
记, 如同 "ESC \" 是不能再随意混用.
利用前後处理与有标记的转换, 那个原英文程式(如 C-Compiler)也就能分
工合作, 好像(虚拟地)也能正确处理繁简中文了. 这就组成一个 extended
machine.
Object Oriented Programming Language 是不是也使用 message passing
也是在应用这种概念做降低藕合度使之可独立分工的事 ?
--
◎ Origin: 中央松涛站□bbs.csie.ncu.edu.tw From: 140.115.6.234