作者KSfish (南无阿弥陀佛)
看板NCHU-PP87
标题Unicode
时间Thu Mar 16 12:32:25 2006
http://uao.cpatch.org/index.php?%E5%8E%9F%E7%90%86%E8%A3%9C%E5%85%85
档名:?????.txt
长档名:C6E8C6E8C6E8C6E8C6E82E747874 → CodePage 格式
您可以看到,虽然该应用程式有取到长档名,但是他的内容已经被系统自动转码过了,本
质已经变了。如果您这时命令应用程式去操作这个档,那麽系统会在收到应用程式要求後
,再对该 CodePage 长档名在内部作一次转换的动作,於是最後系统会用这个档名去操作
您的档案:
档名:?????.txt
长档名:30423042304230423042002E007400780074 → Unicode 格式
但是您磁碟上的档名并不是上面这个,所以最终结果就会发生系统回报「找不到档案」、
「无法开启」的错误讯息。
要解决这个问题,在 2K/XP 下可以透过系统提供的 Unicode API 去作改档名的动作,让
您的旧档名能正确对应到转换过的 Unicode 字码,这支程式我们也有提供,叫作
UcFileRenamer?。98 下则到目前为止没有简单的方法可以处理这个,因为 98 下没有
Unicode API,或许您会说微软有提供所谓的 Unicode Layer,但那个也只是一个
Unicode API 的接收器而已,要使用它应用程式要在编译时把它加入一起编,重点是他
最後还是会把收到的 Unicode API 转换过後,用旧系统 API去作您要它作的事,回传值
也一样会在内部转换过後再传回去应用程式手上,所以这个东西对我们的需求,根本没用
。
最後回应一下 MozTW 最近在提的,让补完计画只作 Big5 → Unicode 对应,而
Unicode → Big5 的对应则回归微软 CP950,基本上 FireFox?/Mozilla 本身不会碰触
档案系统,所以他可以这麽搞,但补完计画并不一样,因为补完计画改的是系统本身在使
用的 Big5 ←→ Unicode 对照表,所有跟 Unicode 有关的东西都会因此被影响到,包括
上面提的「档案操作」问题,所以补完计画在这部份必需实作双向对应。
--
志不定 心不安
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.128.244