20 个解决方案
#1
public static void main(String[] args) {
String str="字符串编码转换";
try {
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
String newStr=new String(temp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
你试一下这个
#2
读取时使用 UTF-8,写入时使用 GBK 编码就可以了。
JAVA 使用的是 UNICODE,内部可以根据不同的编码字符集进行转换。
PS:1 楼的做法是不可行的。
JAVA 使用的是 UNICODE,内部可以根据不同的编码字符集进行转换。
PS:1 楼的做法是不可行的。
#3
SAXReader reader = new SAXReader();
Document document = reader.read(new Reader(), "GBK");
#4
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#5
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#6
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#7
public static void main(String[] args) {
String str="字符串编码转换";
try {
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
byte[] newtemp=new String(temp,"utf-8").getBytes("gbk");//这里写转换后的编码方式
String newStr=new String(newtemp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
#8
20分 太少了
#9
多点告诉你
#10
+++
#11
可以吗?
#12
String a="这里是你在程序内部写好的什么报文了";
String b=new String(a.getBytes(),"utf-8");//这里重新生成一次String
os.write(b.getBytes("gbk"));//os(这是OutputStream)写入文件
楼主你试试这个 不行的话自己多试试别的
#13
这个方法不行,我在http://topic.csdn.net/u/20111014/15/d4bbf15f-25c7-4775-be01-e9c4b91ee8cd.html这个帖子里有更详细的问题
#14
我在http://topic.csdn.net/u/20111014/15/d4bbf15f-25c7-4775-be01-e9c4b91ee8cd.html这个帖子里有更详细的问题,分数也增加了,如果你能帮我解决问题,分数好说
#15
老兄,这个我试了,但是还是破坏了报文,在linux下我做了一下测试
String message = "<?xml version=\"1.0\" encoding=\"GBK\"?><stream>PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME>stream>";
String sendCodeMessage = new String(message.getBytes(),"UTF-8");
File file = new File("/usr/signTest/test.txt");
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
writer.write(message);
writer.flush();
writer.close();
File file1 = new File("/usr/signTest/utf.txt");
Writer writer1 = new OutputStreamWriter(new FileOutputStream(file1), "UTF-8");
writer1.write(sendCodeMessage);
writer1.flush();
writer1.close();
String sendCodeMessage1 = new String(message.getBytes(),"GBK");
File file2 = new File("/usr/signTest/gbk.txt");
Writer writer2 = new OutputStreamWriter(new FileOutputStream(file2), "GBK");
writer2.write(sendCodeMessage1);
writer2.flush();
writer2.close();
生成的三个文件内容分别为:test.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
utf.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
gbk.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>杞爜路缂栫爜鐤簡鍟?/PRODUCTNAME><PRODUCTCODE></stream>
在gbk.txt文件中xml的格式被破坏了,也就是说即使在程序中直接做编码的转换也会破坏报文,那该如何解决呢?
String message = "<?xml version=\"1.0\" encoding=\"GBK\"?><stream>PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME>stream>";
String sendCodeMessage = new String(message.getBytes(),"UTF-8");
File file = new File("/usr/signTest/test.txt");
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
writer.write(message);
writer.flush();
writer.close();
File file1 = new File("/usr/signTest/utf.txt");
Writer writer1 = new OutputStreamWriter(new FileOutputStream(file1), "UTF-8");
writer1.write(sendCodeMessage);
writer1.flush();
writer1.close();
String sendCodeMessage1 = new String(message.getBytes(),"GBK");
File file2 = new File("/usr/signTest/gbk.txt");
Writer writer2 = new OutputStreamWriter(new FileOutputStream(file2), "GBK");
writer2.write(sendCodeMessage1);
writer2.flush();
writer2.close();
生成的三个文件内容分别为:test.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
utf.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
gbk.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>杞爜路缂栫爜鐤簡鍟?/PRODUCTNAME><PRODUCTCODE></stream>
在gbk.txt文件中xml的格式被破坏了,也就是说即使在程序中直接做编码的转换也会破坏报文,那该如何解决呢?
#16
写一个代码过滤器,,什么语言都可以设置!
#17
大哥 最后好了没有呢? 我也遇到这个问题 奇怪的是 在一个地方可以 另一个地方不行
#18
我有办法,我给你代码
#19
最后改了一下linux的编码 修改方法:vi /root/.bash_profile
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
export LANG=en_US
不知道怎么弄,linux默认编码是utf-8的,然后utf-8到GBK转码怎么都不行,但是可以GBK到utf-8转码
#20
有解决方案了吗
#21
#1
public static void main(String[] args) {
String str="字符串编码转换";
try {
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
String newStr=new String(temp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
你试一下这个
#2
读取时使用 UTF-8,写入时使用 GBK 编码就可以了。
JAVA 使用的是 UNICODE,内部可以根据不同的编码字符集进行转换。
PS:1 楼的做法是不可行的。
JAVA 使用的是 UNICODE,内部可以根据不同的编码字符集进行转换。
PS:1 楼的做法是不可行的。
#3
SAXReader reader = new SAXReader();
Document document = reader.read(new Reader(), "GBK");
#4
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#5
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#6
这个报文我是直接在程序内部写好的,没有写成xml文件啊,我想的是直接写成xml的字符串,直接就做签名,但是签名的报文必须是gbk编码的,否则那边收到报文是乱码
#7
public static void main(String[] args) {
String str="字符串编码转换";
try {
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
byte[] newtemp=new String(temp,"utf-8").getBytes("gbk");//这里写转换后的编码方式
String newStr=new String(newtemp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
#8
20分 太少了
#9
多点告诉你
#10
+++
#11
可以吗?
#12
String a="这里是你在程序内部写好的什么报文了";
String b=new String(a.getBytes(),"utf-8");//这里重新生成一次String
os.write(b.getBytes("gbk"));//os(这是OutputStream)写入文件
楼主你试试这个 不行的话自己多试试别的
#13
这个方法不行,我在http://topic.csdn.net/u/20111014/15/d4bbf15f-25c7-4775-be01-e9c4b91ee8cd.html这个帖子里有更详细的问题
#14
我在http://topic.csdn.net/u/20111014/15/d4bbf15f-25c7-4775-be01-e9c4b91ee8cd.html这个帖子里有更详细的问题,分数也增加了,如果你能帮我解决问题,分数好说
#15
老兄,这个我试了,但是还是破坏了报文,在linux下我做了一下测试
String message = "<?xml version=\"1.0\" encoding=\"GBK\"?><stream>PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME>stream>";
String sendCodeMessage = new String(message.getBytes(),"UTF-8");
File file = new File("/usr/signTest/test.txt");
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
writer.write(message);
writer.flush();
writer.close();
File file1 = new File("/usr/signTest/utf.txt");
Writer writer1 = new OutputStreamWriter(new FileOutputStream(file1), "UTF-8");
writer1.write(sendCodeMessage);
writer1.flush();
writer1.close();
String sendCodeMessage1 = new String(message.getBytes(),"GBK");
File file2 = new File("/usr/signTest/gbk.txt");
Writer writer2 = new OutputStreamWriter(new FileOutputStream(file2), "GBK");
writer2.write(sendCodeMessage1);
writer2.flush();
writer2.close();
生成的三个文件内容分别为:test.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
utf.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
gbk.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>杞爜路缂栫爜鐤簡鍟?/PRODUCTNAME><PRODUCTCODE></stream>
在gbk.txt文件中xml的格式被破坏了,也就是说即使在程序中直接做编码的转换也会破坏报文,那该如何解决呢?
String message = "<?xml version=\"1.0\" encoding=\"GBK\"?><stream>PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME>stream>";
String sendCodeMessage = new String(message.getBytes(),"UTF-8");
File file = new File("/usr/signTest/test.txt");
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
writer.write(message);
writer.flush();
writer.close();
File file1 = new File("/usr/signTest/utf.txt");
Writer writer1 = new OutputStreamWriter(new FileOutputStream(file1), "UTF-8");
writer1.write(sendCodeMessage);
writer1.flush();
writer1.close();
String sendCodeMessage1 = new String(message.getBytes(),"GBK");
File file2 = new File("/usr/signTest/gbk.txt");
Writer writer2 = new OutputStreamWriter(new FileOutputStream(file2), "GBK");
writer2.write(sendCodeMessage1);
writer2.flush();
writer2.close();
生成的三个文件内容分别为:test.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
utf.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>转码·编码疯了啊</PRODUCTNAME></stream>
gbk.txt文件:<?xml version="1.0" encoding="GBK"?><stream><PRODUCTNAME>杞爜路缂栫爜鐤簡鍟?/PRODUCTNAME><PRODUCTCODE></stream>
在gbk.txt文件中xml的格式被破坏了,也就是说即使在程序中直接做编码的转换也会破坏报文,那该如何解决呢?
#16
写一个代码过滤器,,什么语言都可以设置!
#17
大哥 最后好了没有呢? 我也遇到这个问题 奇怪的是 在一个地方可以 另一个地方不行
#18
我有办法,我给你代码
#19
最后改了一下linux的编码 修改方法:vi /root/.bash_profile
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
export LANG=en_US
不知道怎么弄,linux默认编码是utf-8的,然后utf-8到GBK转码怎么都不行,但是可以GBK到utf-8转码
#20
有解决方案了吗