中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 08:53
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]fr.exe能不能处理unicode格式的文本
可打印版本  907 / 10
第1楼 5600549976 发表于 2009-08-26 05:56
新手上路 发帖 11 积分 11
[求助]fr.exe能不能处理unicode格式的文本
fr.exe能不能处理unicode格式的文本,是不是要加什么参数,还是根本就不能处理
第2楼 yishanju 发表于 2009-08-26 10:07
银牌会员 发帖 1,357 积分 1,488
不能处理
用WFR可以了
第3楼 yishanju 发表于 2009-08-26 10:20
银牌会员 发帖 1,357 积分 1,488
wfr
  - 支持多国语言的字符串批量查找和替换
  - 批量字符集编码转换

bwfr
  - 支持多国语言的字符串批量查找和替换
  - 批量字符集编码转换

作者网站http://baiy.cn
第4楼 caopengwen 发表于 2009-08-26 12:03
新手上路 发帖 9 积分 9
还是不行,我用
wfr.exe -ric:"(^creatyear=)(.*)" -t:"creatyear=2009\r\n" "config.ini"

处理文本(config.ini):
data=36kb
creatyear=2008

没有任何反应

http://upload.cn-dos.net/img/1667.rar 文本地址
第5楼 yishanju 发表于 2009-08-26 16:35
银牌会员 发帖 1,357 积分 1,488
确实是编码的原因,
我也搞不清楚这些编码的关系
靠,第一次感觉编码这么可恨
WFR 说支持UNICODE的,但是用-encin:unicode 指定输入输出都为UNICODE,却是不行的
郁闷
第6楼 yishanju 发表于 2009-08-26 17:31
银牌会员 发帖 1,357 积分 1,488
wfr -ric:"(^creatyear=)(\d+)" -t:"\12009" -encin:UCS-2 config1.ini
start config1.ini

看了N多文章之后,试着指定用UCS-2编码,替换成功了
第7楼 caopengwen 发表于 2009-08-26 22:48
新手上路 发帖 9 积分 9
wfr -ric:"(^creatyear=)(\d+)" -t:"\12009" -encin:UCS-2 -encout:UNICODE config1.ini

因为处理后config.ini保存的格式是GB312,而导致程序无法读取INI文件,所以我再后面加了句 -encout:UNICODE ,出现以下错误:

## Incompatible text encoding convertion detected: encoding from "UCS-2" to "UNICODE" will lost infomation and should not be used. use: "wfr -listcmp" for a list of the compatible convertion combinations. or use "-force" to enforce the convertion.
并且程序未对INI文件作任何处理,请问这是怎么回事儿
第8楼 caopengwen 发表于 2009-08-26 23:18
新手上路 发帖 9 积分 9
高手们来帮帮我啊
第9楼 yishanju 发表于 2009-08-26 23:27
银牌会员 发帖 1,357 积分 1,488
我们可以看到记事本支持4种编码格式:ANSI、Unicode、Unicode big endian、UTF-8。如果读者看过《谈谈Unicode编码》,对Unicode、Unicode big endian、UTF-8应该不会陌生,其实它们更准确的名称应该是UTF-16LE(Little Endian)、UTF-16BE(Big Endian)和UTF-8,它们是基于Unicode的不同编码方案。

http://blog.csdn.net/fmddlmyy/archive/2007/02/14/1510189.aspx

UNICODE等于UTF-16LE
wfr -ric:"(^creatyear=)(\d+)" -t:"\12009" -encin:UTF-16LE config1.ini
start config1.ini

改成这样试试
第10楼 caopengwen 发表于 2009-08-26 23:58
新手上路 发帖 9 积分 9
还是不行 结果有变成了 GB312 真麻烦yishanju 要是真不行的话 哎~
第11楼 yishanju 发表于 2009-08-27 10:12
银牌会员 发帖 1,357 积分 1,488
我不知道你是怎么弄的,我试了处理过的INI文件都是UNICODE编码。

[ Last edited by yishanju on 2009-8-27 at 10:14 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023