中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 脚本对多语言OS的支持遇到问题
作者:
标题: 脚本对多语言OS的支持遇到问题 上一主题 | 下一主题
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『楼 主』:  脚本对多语言OS的支持遇到问题

不知道这里有没有朋友涉足过多语言OS的支持性

我最近写点东西遇到一个问题,举个例子:在日文OS下,文件路径或注册表中的"\"成了类似"¥"的符号
这就给脚本的兼容性造成了一点影响

对于bat,还比较好解决,先 chcp 437 一下即可
(这一招对于注册表的相关操作可能没用,还得另想办法)

对于vbs,还没想到什么好办法,只好老老实实把有关的符号做成正则表达式来匹配
显然,这很麻烦

是否有好的解决办法?
另,如果有高人能分析一下这个文件路径和注册表中的符号的解析机制就更感激不尽了。
(我的猜想:不管什么语言版本的OS,文件系统(及其驱动)和注册表文件中实际使用的符号都是原始的"\";只不过在呈现给用户的时候,某些语言版本会加一层映射,使得用户看到的是贴合其所在国国情的"¥"或是别的什么符号了)

2009-9-2 12:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

代码前加
SetLocale("zh-cn")

看看,没有多语言系统不清楚。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-9-2 13:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by slore at 2009-9-2 13:07:
代码前加
SetLocale("zh-cn")

看看,没有多语言系统不清楚。

刚试了一下,locale变了,但是符号没变......

2009-9-2 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

转完以后用
\\做间隔的能访问和操作麽?

显示的话,应该是固有的字符串出来了。。
不然判断版本然后replace?



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-9-2 15:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『第 5 楼』:  

明白了,就是code page的问题
\的ASCII是0x5F,这个是不变的
到了外文OS下,系统通过code page进行转换,然后显示出来
比如日文OS下,不管是用键盘直接输入\键、还是其他系统下输入过来的\,一显示就成了¥

如此一来,似乎我的问题不在于这些字符,而是另有其因了,我倒,继续debug......

2009-9-2 23:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
azziporah
初级用户





积分 102
发帖 47
注册 2008-11-10
状态 离线
『第 6 楼』:  

另外,code page是通过system locale决定的
而之前测试的setlocale应该是user locale,无法影响code page

参考MSDN
http://msdn.microsoft.com/en-us/goglobal/bb964662.aspx
和Wiki
http://en.wikipedia.org/wiki/Windows_code_page

但这样的话,那个chcp又如何解释呢 Orz

2009-9-2 23:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: