在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,原因是编码方式的不一致。native2ascii是sun
java
sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。
一.获取native2ascii
安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。
二.使用方法
命令行格式:
native2ascii.exe -[options] [inputfile [outputfile]]
其中知枯:
-[options]表示命令开关,有两个选项可供选择:
-reverse:用Latin-1或Unicode编码把文件转换成本地编码格式
-encoding encoding_name:要把文件转换的目标编码
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台。
具体介绍如下:
1.命令行交互方式
在这种方式下通过手工输入字符实时在Console中实现交互转码。退出按Ctrl+c
1)本地编码→Latin编码:
直接敲入native2ascii.exe,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:
D:\jdk1.5.0_06\bin>native2ascii.exe
我们
\并或u6211\u4eec
2)Latin-1编码→指定编码:
直接敲入native2ascii.exe -reverse,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:
D:\jdk1.5.0_06\bin>native2ascii.exe -reverse
\u6211\u4eec
我们
2.文件转换方式
在这种方式下通过指定inputfile和outputfile来实现转码。
1)指定编码→Latin编码:绝猛伍
例如:
D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt
2)Latin-1编码→指定编码:
例如:
D:\jdk1.5.0_06\bin>native2ascii.exe -reverse utf8 abc.txt bcd.txt
#include"stdio.h"
void
main()
{
FILE*
fin
=
NULL//输入文件
FILE*
fout
=
NULL//输出文件
char
c
fin
=
fopen("readme.txt",
"r")
if(fin
==
NULL)
{
printf("输入链慎文件打开错粗败误!\n")
return
}
fout
=
fopen("out.txt",
"w")
if(fout
==
NULL)
{
printf("输出文件打开错误!\n")
return
}
c
=
fgetc(fin)
while(c
!=
EOF)
{
fputc(c,
fout)
printf("%c",
c)//对于这句来说,如果是非中文,输出到屏幕会有问题的!
c
=
fgetc(fin)
}
fclose(fin)
fclose(fout)
printf("输入输出结束!\n")
}
你自己试岩唤颤试,应该可以的
猜测啊,你这批文件实际是Unicode编码,因为记事本能打开。如果你有UE,那就可以使橡物用 UE的Macro功能方便的完成这项工作。
简单来说,你可以先录制一个宏:芦肆
1.打开一个文件; (支持 *.*)
2.选择另存为;
3.选择文件类型为 'ascii' ;
4. 保存。
然后你可以修改这个宏,可陪如轿以改第一步,打开所有文件,然后循环2,3,4.。。。。重复重复再重复。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)