标题: 如何住编码是Unicode的TXT文件写入内容,不显示乱码?
[打印本页]
作者: fatmingli
时间: 2007-10-30 08:16
标题: 如何住编码是Unicode的TXT文件写入内容,不显示乱码?
一般的TXT文件的编码是ANSI,
可用以下语句住TXT文件写入内容
echo wmp11>>x.txt
但若TXT文件的编码是Unicode时,用以上语句住TXT文件写入内容时,
写入的语句在TXT文件内显示乱码,“海ㅰ”റ
请问如何住编码是Unicode的TXT文件写入内容,不显示乱码?
作者: Michael
时间: 2007-10-30 20:53
dos下还是cmd下,如果是cmd,则可以试下cmd /u。
作者: fatmingli
时间: 2007-10-31 23:04
是在一个bat文件里
作者: sinbao
时间: 2007-11-19 13:11
我也遇到同样的问题,有达人指教一下吗?谢谢!
作者: shanliang8008
时间: 2007-11-19 13:17
WINDOWS下我知道用Notepad2打开就不是乱码了
设置也可以不过偶不会
作者: shanliang8008
时间: 2007-11-19 13:18
或者下个DJGPP DOS下, 如果有WINDOWS还是用楼上方法吧 DJGPP不太号找。可以试下
Last edited by shanliang8008 on 2007-11-19 at 01:19 PM ]
作者: sinbao
时间: 2007-11-19 13:36
用cmd /u是可以解决命令行的问题.但是不能解决batch的问题.
谢谢楼上,不过这样的话程序移植性就不行了...
继续向高手求救啊!!
作者: lxmxn
时间: 2007-11-19 13:56
try this in batch script:
cmd /u /c "echo 歡迎來到中國DOS聯盟>>myfile.txt"
作者: sinbao
时间: 2007-11-19 14:11
谢谢斑竹!
作者: sinbao
时间: 2007-11-19 14:12
但是还有个问题.如果里面有很多echo 语句,那是不是要每个echo前面都加 cmd /u /c啊? 这个...似乎麻烦..
作者: sinbao
时间: 2007-11-19 15:17
继续呼唤...
作者: lxmxn
时间: 2007-11-19 15:50
1、可以设置一个简单的变量,比如“set e=cmd /u /c ”,然后在echo语句前面加上%e%即可;
2、可以“for /F "delims=" %%a in ('findstr /i "^echo" %0') do @cmd /u /c %%a >>newfile.txt”试试。。。
作者: sinbao
时间: 2007-11-19 16:39
还是稍显麻烦...
不能在全局设置一下,然后再call别的batch文件吗?
Last edited by sinbao on 2007-11-19 at 10:52 PM ]
作者: Climbing
时间: 2007-11-20 15:10
你可以试试:
cmd /u /k "call batch.bat"
作者: lxmxn
时间: 2007-11-20 18:56
Climbing 兄的方法果然可以!我怎么就没有想到呢,寒。。
作者: Climbing
时间: 2007-11-21 08:24
我是瞎猫碰上死耗子,以前还真没有发现cmd /u这个参数。
作者: nipo
时间: 2008-5-12 01:04
标题: 我这里为什么不能产生UNICODE文本呢
此贴珍贵,两位大侠详细介绍了cmd /u 的各种用法。
不过,很奇怪,我这里却不能产生UNICODE文本。
测试代码:
cls
if exist myfile.txt del myfile.txt
echo.
cmd /u /c "echo 歡迎來到中國DOS聯盟>>myfile.txt"
echo.
cmd /u /c "echo Hi!How are you?>>myfile.txt"
echo.
start myfile.txt
测试结果,生成的myfile.txt是ANSI码,且字符显示异常:
ak螐哋0R-NWD O S o€遶
H i ! H o w a r e y o u ?
更让我奇怪的是,这两列字符在我的记事本中呈一行排列,而到这里却自动分成两行了!
将上面代码中的myfile.txt改成myfile.rtf,结果更离奇:
ak螐哋0R-N
WD
--有很多小方框,复制过来后看不到了。暂时无法截图。
奇怪!既然帮助文件中也说得很清楚,这种方法怎么会出现非UNICODE文本的乱码情况呢?
作者: nipo
时间: 2008-5-12 01:07
标题: 不用中文则正常生成UNICODE文本
cmd /u /c "echo Hi!How are you?>>myfile.txt"
结果生成UNICODE文本,如下:
Hi!How are you?
Last edited by nipo on 2008-5-12 at 01:30 AM ]
作者: amio
时间: 2008-5-28 01:44
Originally posted by nipo at 2008-5-12 01:04 AM:
此贴珍贵,两位大侠详细介绍了cmd /u 的各种用法。
不过,很奇怪,我这里却不能产生UNICODE文本。
测试代码:
cls
if exist myfile.txt del myfile.txt
ech ...
我的也是啊 不能使用中文吗?
作者: amio
时间: 2008-5-28 02:18
Originally posted by amio at 2008-5-28 01:44 AM:
我的也是啊 不能使用中文吗?
晕 原来是文本已在Unicode下
作者: stringoe
时间: 2008-6-3 18:43
Unicode搞得复杂了,这样一个像样的编辑器都好难搞得定
不知道最新的国标码会不会简单点
作者: thirteen
时间: 2008-6-7 20:40
Originally posted by nipo at 2008-5-12 01:04 AM:
此贴珍贵,两位大侠详细介绍了cmd /u 的各种用法。
不过,很奇怪,我这里却不能产生UNICODE文本。
测试代码:
cls
if exist myfile.txt del myfile.txt
ech ...
UNICODE编码的文件,用16进制编辑器(如UE)打开看,最初的两个字节是FF FE
你这个方法,缺少那个文件头,
用UE补上FF FE,再打开就对了.
解决方法是,如果文件不存在,想办法先写FF FE进去
if exist myfile.txt echo >myfile.txt
小键盘ALT255,254,我这里显示有点不正常
Last edited by thirteen on 2008-6-7 at 08:42 PM ]
作者: gmy
时间: 2008-6-19 01:15
作者: jiayi333
时间: 2008-10-20 02:31
学习了 原来命令在和UN编码使用的时候还可以这样
作者: qingfushuan
时间: 2008-12-29 14:16
标题: 搞出来没?
下面这句可以把dos-txt转换为Unicode-txt
for %%a in (~!zh!.txt) do cmd /u /c "type %%a >>!zh!.txt"
至于echo到文件就各人想办法咯