本文目录一览:
- 1、急!急!JAVA中ASCII转码问题??
- 2、java生成二维码名片,内容太大,转码怎么实现
- 3、\xd0\xa1\xc4\xac是什么的转码,要怎么转回去啊,用native2ascii不能转
- 4、在JAVA中如果字符串被改变了编码格式,该怎么样将它还原回来呢?
- 5、Java中中文转码,为什么中文数字转不过来?
- 6、java转码问题
急!急!JAVA中ASCII转码问题??
看了几位的回答,感觉有点好笑,楼主本身就出了一个假命题,几位回答都没有弄清字符集的转换,楼主也不知道自己本身就犯了一个致命错误,“你好”本身就是一个多位编码,你却硬要用低位码去解码,不出错才怪呢?
String s1 =new String(chinaString.getBytes("gb2312"),"ISO-8859-1");
这里的gb2312可以省略,系统会默认用你控制面板设定好的字符集,因为原来“你好”是多位编码,所以必须用多位编码去解码,也就是gb2312或utf-8去解码,这样chinaString.getBytes("gb2312")就变成一个byte数组,这时候你可以随意重新指定编码如iso-8859-1,这是s1就变成一个是iso-8859-1编码的字符串,如果你想重新转为中文,那么,你用什么字符集编码的,必须用什么字符集来解码,这里是iso-8859-1,可以这么来做
String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");
这样s2又重新变回中文了,所以当你打印s2时,就是“你好”。
还有一个问题,为什么这里用iso-8859-1来重新编码,而不用其他的字符集呢?这里因为,其他字符集无法相互转码而发生编码丢失现象,你可以试试,把iso-8850-1换成utf-8试试,这无法重新转回来,这导致乱码现象,如果你ios-8850-1换成gbk,大部分是可以的,因为gbk兼容gb2312,但是,不是所有的都能相互转回来,最好用iso-8850-1来作为中间转码字符集,这是因为所有的字符集都对iso-8859-1兼容,不管是gbk还是gb2312,utf-8,都能完美地转换回来。
说了这么多,可能大家还有点迷糊,这应用在什么地方。我举个例子,大家知道,经常有人做网络爬虫,把网页下载下来,但是,网页编码各种各样,主要有iso-8859-1,gbk,gb2312,utf-8,网页以io字节流下载下来,要想把它转换字符流,也就是文字,这时候要知道编码是什么。怎么办呢?这样做,不管它,首先以iso-8859-1编码转换过来,然后再用正则表达式看看网页头部,如:
meta content="text/html; charset=gb2312" http-equiv="Content-Type",这时就知道这个网页的编码是gb2312,再利用这个式子
String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");
s2就能正确显示网页内容。假如你用其他字符集如utf-8作为中间码,也能知道网页编码是gb2312,但这是你用式子
String s2 = new String(s1.getBytes("utf-8"),"gb2312"),就会出现乱码现象,所以最好用iso-8859-1作为中间码。
所以,楼主除了犯以上错误以外,还有,就不应该用US-ASCII作为中间码,否则,是不能转换为中文的,它们之间无法做到相互转换,只有iso-8859-1才能完美转换成其他编码。
java生成二维码名片,内容太大,转码怎么实现
Java中字符串转码,根据实际运用的环境有以下三种方式 使用Java.lang.String这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下: String s = "清山"; byte[] b = s.getBytes("utf-吧");//编码 String sa = new String(b, "gb二三一二");//解码:用什么字符集编码就用什么字符集解码 java.io.InputStreamReader/OutputStreamWriter:桥转换读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下: InputStream is = new FileInputStream("C:/项目进度跟踪.txt");//文件读取 InputStreamReader isr = new InputStreamReader(is, "utf-吧");//解码 OutputStream os = new FileOutputStream("C:/项目进度跟踪_gb二三一二.txt");//文件输出 OutputStreamWriter osw = new OutputStreamWriter(os, "gb二三一二");//开始编码 java.nio.Charset使用nio中的Charset转换字符,示例代码如下: Charset inSet = Charset.forName("utf-吧"); // 解码字符集 Charset outSet = Charset.forName("gb二三一二"); // 编码字符集 CharsetDecoder de = inSet.newDecoder(); // 解码器 CharsetEncoder en = outSet.newEncoder();// 编
\xd0\xa1\xc4\xac是什么的转码,要怎么转回去啊,用native2ascii不能转
先前转错了吧,这种是ASCII,但不是JAVA的格式的、是普通的 ASCII 。
JAVA的是 \u76ee\u524d\u7528\u6236:
在JAVA中如果字符串被改变了编码格式,该怎么样将它还原回来呢?
UTF-8
在装换成
gb2312
的是,信息已经丢失了,不可能在正常的转换回去的
只能通过设置正确的编码方式来
获取
正确的文件内容
Java中中文转码,为什么中文数字转不过来?
中文数字“1”其实跟一般的中文字是一样的。所以当文件的编码格式转换之后,还是没法转过来的。
如果你只是想改变文件的编码格式,并且想让文件里面的内容不会出现乱码的话,有个办法。
1、先把文件的内容复制一份出来,copy到记事本里面;
2、修改文件的编码格式;
3、把copy到记事本的内容再copy回改了编码格式之后的文件中;
4、保存文件。
java转码问题
呵呵,看我这个,是本人原创。不管你是任何编码都可以解决,唯一的缺点是效率稍微低了点(不过比楼上那个要快)。
思路:
1.首先在jsp页面即客户端用JavaScript将汉字处理成asc码
2.服务端再将asc码还原成原有的字符
JavaScript转换代码:
var s=document.getElementById("text").value;
var t="";
//将汉字转换成ASCII码,然后在服务器端里再根据ASCII码转换成相应的字符
for(i=0;is.length;i++){
t+=s.charCodeAt(i)+" ";//将字符转换成相应的ASCII码并用空格隔开;
}
java服务端还原:
String param=request.getParameter("param");
StringBuffer buf=new StringBuffer("");
String[] ss = param.split(" ");
for (int i = 0; i ss.length; i++) {
char c = (char) Integer.parseInt(ss[i].trim());
buf.append(c);
}
System.out.println("还原后的字符是:"+buf.toString());
----------------------
如果你再把转换后的asc码再加个数字或者减个数字就是一个简单的加密,O(∩_∩)O~,希望对你有所帮助