重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
out.write(s.getBytes("ISO-8859-1"));
创新互联建站主要从事成都做网站、网站建设、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务岚皋,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
这条语句是说,将s按照ISO-8859-1编码的方式进行编码转换,而ISO-8859-1编码是单字节拉丁字符编码(即ASCII编码),会把双字节的中文编码转换成单字节,丢失了一个字节,一般的转换成了单字节后,该字节对应的十六进制数是3F,该数对应ASCII编码的?所以,结果是一串问号;其实,你在把数据写入到文件,已经发生了丢失了数据!所以最后是乱码!!
现在解释为什么123正常显示,字符串在java中是以Unicode编码方式进行编码的,该编码方式占2个字节,对于123这3个字符,其实也占有了6个字节,在进行编码转换的过程中,也丢失了一个字节,丢失的是高字节,保留了低字节,同时Unicode编码是兼容ASCII码的,所以可以认为没有发生字节丢失,读取的时候,只要是以兼容ASCII码的编码方式读取,基本上不会出现乱码!
如有不清楚地方,欢迎继续追问!!
将文件打开。另存为,然后下面会出现一个编码格式,自己选择GB2312即可,不过记事本方式是没gb2312的,找个EditPlus或者其他的文本工具,里面就有GB2312
可以选择,或者在myeclipse里面右键文件,点最底下的选择进去也有一个更换格式的,不过更换了中文会乱码得重新写
//输出XML流
private void outputXML() throws DTreeException {
DOMSource domSource = new DOMSource (doc);
StreamResult streamResult = new StreamResult(this.out);
try {
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
Properties properties = transformer.getOutputProperties();
properties.setProperty(OutputKeys.ENCODING, "gb2312 ");
properties.setProperty(OutputKeys.VERSION, "1.0 ");
transformer.setOutputProperties(properties);
transformer.transform(domSource,streamResult);
}
catch (TransformerConfigurationException tce) {
tce.printStackTrace();
throw new DTreeException( "TransformerConfigure Exception: "+tce.getMessage());
}
catch (TransformerException te) {
te.printStackTrace ();
throw new DTreeException( "Transformer Exception: "+te.getMessage());
}
}
可以通过“FileOutputStream”(此时指定编码格式即可)创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter
pw
=
null;//定义一个流
pw
=
new
OutputStreamWriter(new
FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
要让一个
Java
源文件打开时编码格式为
UTF-8,需要做2件事情:
1)设置Java
源文件的默认编码格式为UTF-8;
2)设置workspace的编码格式为UTF-8。
相应设置如下:
设置
Java
源文件的默认编码格式为
UTF-8
在
Windows-Preference
页面中,选择
General-Content
Types
在右边的框中,选择
Text-Java
Source
File,将下面的
Default
Encoding
改为
UTF-8
设置
workspace
的编码格式为
UTF-8
在
Windows-Preference
页面中,选择
General-WorkSpace
选择右侧框中的
Text
File
encoding,改为
UTF-8
设置完这2处,默认打开
Java
源文件就是UTF-8编码了。