Property 文件中 使用的编码方式根据机器本身的设置可能是GBK或者UTF
而在Java程序中读取Property文件的时候使用的是Unicode编码方 式 这种编码方式不同会导致中文乱码
因此需要将Property文件中的中文字符转化成Unicode编码方式才能正常显示中文
Java提供了专门的工具对Property文件进行Unicode转化 这种工具就是native ascii 它在JDK安装环境的bin目录下
native ascii 工具将带有本机编码字符(非拉丁 和非单一码字符)的文件转换成带有Unicode编码字符的文件
假设需要转化的属性文件为 D:src esources properties(含有中文字符)
转化后的属性文件为 D:classes esources properties(中文字符统一转化为Unicode)
那么使用如下命令
JAVA_HOMEin ative ascii encoding GBK D:src esources properties D:classes esources properties
lishixin/Article/program/Java/hx/201311/26296
B. 如何使用Java代码获取文件,文件流或字符串的编码方式
简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK
C. java有没有那个方法 获取文件保存的编码方式啊
如果一个文本文件被“文件编辑器”编辑过,可能会带上一些标记 ,就是文件的前几个字节说明了它的字符集编码方式,但并不是所有编辑器都会这么做,也可能在保存时由人来决定是否放置标记。
因此理论上说如果编辑器未放置任何标记是不可能知道文件的原始字符编码的,就好像你初次看一份密码加密过的文件时你也不可能知道它是什么加密方式一样,因为编码方式并不会和编码的数据放在一起的。
正常的方法是当你读取一个文件时,应该有人已经告诉了你这个文件是字符集是什么。这个过程应该是人工决定的,比如人们把它写在一个配置文件中,或者约定了整个软件只使用 UTF8 或 GBK 一种编码方式。作为一个通用型的软件推荐使用 UTF8 而不是 GBK,因为当你保存一个人名时你也知道这片神奇的土地上就是有些父母给孩子取名字时用一些中小学生字典上都找不到的字。这时GBK是无法保存这个汉字的。你不希望将来自己的软件碰到这个问题吧,解决的办法就是这么简单,用 UTF8就可以了。
D. java代码如何获取文件的编码格式
若想实现更复杂的文件编码检测,可以使用一个开源项目cpdetector,它所在的网址是:http://cpdetector.sourceforge.net/。它的类库很小,只有500K左右,cpDetector是基于统计学原理的,不保证完全正确
E. java怎么获取文件编码格式
没错,就这样做,文件格式和文件内容,不是这样的。
普通文件,开始就是文件内容了。
有编码的,开头先是编码的定义,正如判断语句所写的那样
F. java 文件上传中如何获取上传文件的字符集编码
看看这篇
http://www.javaeye.com/topic/266501
还有这个
http://blog.csdn.net/crackcell/archive/2007/11/22/1898128.aspx
这个是jchardet的地址
http://sourceforge.net/projects/jchardet/
也有人写了用
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
public class FileCharset {
public static void main(String[] args) throws FileNotFoundException {
InputStreamReader isr = new InputStreamReader(new FileInputStream(
"Service02.asp"));
System.err.println(isr.getEncoding());
BufferedReader br = new BufferedReader(isr);
}
}
但是不起作用
getEncoding gives you the encoding the reader is using, not what the file is
using. The problem is that there isn't anything in the file that says what
encoding it is using. You can look at some byte patterns to try to
determine whether it's UTF-8, UTF-16BE, or whatever but there's no perfect
rule for it.
G. java 获取 file 的编码(utf-8或者gbk)
在java中有一个设定的内部语言设置,比如gbk或utf-8,
jvm中的字符串只能以一种编码方专式存在,你的命属题就是伪命题。
当然存在硬盘里面就不一样了,可以以gbk方式存储,也可以以utf-8方式存储。
在存为文件的时候,使用
string.getbytes("charset")方式获取byte流,存入硬盘。
H. java中有没有获得字符的编码形式的方法啊
没有,编码方式一般你自己最清楚的
你若从数据库获得的字符串是乱码,可以从数据库入手,得到数据库的字符串存储的编码方式,然后你在程序中在解码就好了
I. java怎么获取txt文件编码格式
文件头,有编码格式信息的,读出来,判断
一下
如
(fs[0]
==
0xEF
&&
fs[1]
==
0xBB
&&
fs[2]
==
0xBF)
是UTF-8的