Board logo

标题: 如何住编码是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-N WD 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
给你一个文件unicode,http://upload.cn-dos.net/img/522.rar
把unicode这个文件复制到CMD当前目录下,输入

copy /y unicode myfile.txt
echo 歡迎來到中國DOS聯盟>>myfile.txt

Last edited by gmy on 2008-6-19 at 01:19 AM ]

作者: 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到文件就各人想办法咯