在中文中用Base64编码的时候会出错..当然解的时候也会咯.....
解决方案 »
- 新人求教,关于jquery 的ajax 的一些最基础的例子 是jsp的
- 随机生成密码
- 在线急等!才几千条数据怎么就成了死循环,少一些怎么就没事呢
- 关于tomcat的问题???
- Struts+Spring+Hibernate+Tomcat6.0.10的问题????
- Eclipse+Lomboz+Tomcat配置的一个诡异问题!!!!
- 能否提供一个结合weblogic开发的webserveice的例子?
- 关于hibernate的one-to-one的问题。
- 在cmp中用jboss扩展的declared sql 如何写两个关联表的查询?!
- 一个简单问题
- 请大侠HTML中的div和SPAN是什么意思呀?
- struts sqlserver连接池问题
while(inLine != null)
{
tempString = tempString + inLine;
inLine = din.readLine();
}我手写一段代码,大概的意思,有错误你再修改//编码
FileInputStream fin = new FileInputStream("d://test.txt");
int len=0;
byte buf[]=new byte[128];
String tempString = null;
if (fin!=null)[
while ((len=fin.read(buf))!=-1){
tempString.write(buf,0,len);
}
}
首先你要保证你的文件时原始的系统默认格式ANSI,这样里面的中文不会有问题但是如果你的文本文件被另存为了utf-8格式的,那个用你的读取文件的方法,就有问题了,因为读到内存里的信息本身就是乱码,当然解析回来的也是乱码,这不是base64的问题,是因为你的文件的存储格式问题如何解决
如果你的文件是utf8格式的,就不要用你的方法读取了,要以utf8的格式来读取文件(另外你读取文件的方法有些都过时了,不要再这样读取文件了)package com;import java.io.*;/**
* Created by qixin.
* User: qixin
* Date: 2005-11-15
* Time: 12:09:29
*/
public class aa {
public String getEncodeInfo(String filename) throws IOException {
InputStreamReader streamReader = new InputStreamReader(new FileInputStream(filename),"utf-8");
BufferedReader reader = new BufferedReader(streamReader);
String inLine = reader.readLine();
String tempString = "";
while (inLine != null) {
tempString = tempString + inLine;
inLine = reader.readLine();
}
return tempString;
} public void saveEncodeInfo(String tempString, String outputFilename) throws IOException {
System.out.println("tempString = " + tempString);
String encodedString = (new sun.misc.BASE64Encoder()).encode(tempString.getBytes());
System.out.println("encodedString = " + encodedString);
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilename));
writer.write(encodedString);
writer.flush();
writer.close();
}
public String getFromBASE64(String filename) throws IOException {
String info = this.getEncodeInfo(filename);
if (info.equals("")) {
return null;
} try {
byte[] b = (new sun.misc.BASE64Decoder()).decodeBuffer(info);
return new String(b);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) throws IOException {
aa a = new aa();
String info = a.getEncodeInfo("c://test.txt");
a.saveEncodeInfo(info,"c://test1.txt");
String info1 = a.getFromBASE64("c://test1.txt");
System.out.println("info1 = " + info1);
}
}