0 0

java中的编码转换问题5

我的程序环境是GBK的,第三方是UTF-8的,现在我发往第三方的报文需要从GBK的编码转换成UTF-8,然后第三方给我的响应我需要从UTF-8的编码转变成GBK,我们的通讯是socket连接,用的是XML报文,请问这种情景用JAVA代码如何实现
2014年7月09日 00:38

4个答案 按时间排序 按投票排序

0 0

所谓的字符集(GBK、UTF-8)等都是字节数组转化成字符串和字符串转化成字节数组的转化标准。网络传递中的消息本质是字节数组。因此不同的字符集间的字符串转化需要通过字节数组来实现。
简单的例子如下:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

/***
 * 我们的环境及源码均是gbk
 * 
 * @author bobo
 * 
 */
public class Test {
	public static void main(String[] args) throws UnknownHostException, IOException {
		/**
		 * 要发送到第三方服务端的srcXml,
		 */
		String srcXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><desc>测试字符转码</desc></root>";
		/**
		 * 根据你的描述我们是做客户端,因此创建client的socket对象
		 */
		Socket socket = new Socket("127.0.0.1", 8080);
		/***
		 * 获得输出流,将我们的数据流到对端,注意我们流过去的是字节数组,且是srcXml字符串用utf-8格式表示时的字节数组,
		 * 这样对端用utf-8格式来解析才能解析正确
		 */
		OutputStream outputStream = socket.getOutputStream();
		outputStream.write(srcXml.getBytes("utf-8"));
		outputStream.flush();
		/**
		 * 获得输入流 并读取对端的响应字节数组到b中此时b中存储的是用utf-8格式存储的字节 因此我们需要用utf-8格式将其转成 字符串
		 */
		InputStream inputStream = socket.getInputStream();
		byte[] b = new byte[1024];// 数组大小可以自己调整,或者采用重复使用的方法
		inputStream.read(b);
		// 构建字符串
		String resXml = new String(b, "utf-8");
	}
}


2014年7月15日 12:42
0 0

原来是GBK

gbkString.getBytes("gbk") //不写gbk也可以

发送bytes 到达对方 用
new String(bytes,"utf-8")

2014年7月12日 13:37
0 0

1、从对端接收到二进制数据,使用utf8字符集创建String,然后可以随意解析为其他字符集
2、发送数据时,将string使用utf8提取出byte数组,socket发送到对端

2014年7月09日 18:24
0 0

写xml文件时需要设置编码的,你这边发xml文件时发utf-8的,那边发过来发gbk的不行吗

2014年7月09日 08:12

相关推荐

    Java文件编码转换源码

    在Java编程语言中,文件编码转换是一个常见的任务,特别是在处理多国语言或者处理不同系统间的文件传输时。本文将深入探讨如何使用Java实现文件编码的转换,主要关注GB2312、UTF-8这两种常见编码格式之间的转换。 ...

    java编码转换工具

    java编码转换工具

    java 文件编码转换

    标题"java 文件编码转换"指的是使用Java来解决文件编码问题,而描述中提到的"提供一个jar包和一个java文件"则暗示了我们可以通过这两个文件实现这个功能。 首先,`chardet.jar`可能是一个字符集检测库,用于自动...

    java字符串编码转换

    本文介绍了Java字符串编码转换的基础知识,并结合Web环境中的具体应用场景进行了详细的说明。在处理不同编码格式的数据时,正确地使用编码转换方法对于确保数据的一致性和准确性非常重要。开发者应当熟悉各种编码...

    java 中文Unicode转换

    另一方面,要从Unicode编码还原为中文字符,可以使用`Character`类的`forName()`方法,或者通过`String`构造函数将Unicode编码转换为字符。但是,要注意处理代理对的情况,因为它们不能单独被`forName()`方法解析。...

    java中编码的转换

    在Java编程环境中,字符编码的转换与处理是一个常见的技术难点,尤其当涉及到中文或其它非ASCII字符时。...通过正确配置和编码转换,可以有效解决中文显示问题,确保应用程序在不同编码环境下均能正常运行。

    java编码格式转换

    ### Java编码格式转换 在Java开发中,字符编码的转换是一项常见的需求,尤其是在处理国际化文本时。本文将详细介绍如何在不同的编码格式之间进行转换,并探讨一些常见的编码转换错误及其处理方法。 #### Unicode与...

    java文件编码转换

    Java写的一个小程序,用于批量转换GBK编码的java源文件为UTF-8编码格式

    java文件字符编码检测和转换

    附件中:FileCharsetConverter.java 此文件可以实现两个编码的相互转换 FileCharsetConverter.convert( "gbk/DispatcherHandler.java", "GBK", "UTF-8", new FilenameFilter() { public boolean accept(File...

    Java中的字符集编码入门(五)Java代码中的字符编码转换Part1.pdf

    Java中的字符编码转换是编程实践中一个至关重要的概念,尤其是在处理多语言环境和跨平台交互时。Java通过统一采用UTF-16编码格式在JVM内部处理字符,简化了字符操作的复杂性。UTF-16是一种变长的Unicode编码,它可以...

    java字符串的各种编码转换

    根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...

    Java源码编码转换器 v2.0 GBK TO UTF8

    Java源码编码转换器v2.0是一款专用于解决Java源码编码问题的工具,它主要功能是将GBK编码的Java文件转换成UTF-8编码,以解决由于编码不匹配导致的乱码问题。该工具在之前的版本基础上进行了优化,修复了UTF-8转换后...

    java文件的编码转换

    在IT行业中,编码转换是一个常见的问题,特别是在处理不同来源或平台的文件时。Java作为一种广泛使用的编程语言,处理文件编码转换也是其能力之一。本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java...

    JAVA 转换字符编码工具

    `JAVA 转换字符编码工具`可能是一个用于处理字符编码转换的Java程序,旨在帮助开发者解决不同编码格式之间转换的问题。这篇博文链接(虽然没有提供具体内容)可能详细介绍了这个工具的实现原理和使用方法。 在Java...

    关于java中的编码转换问题(解决乱码问题)

    以下将详细阐述Java中涉及编码转换的关键知识点。 一、概念 1. 字符: 字符是文本的基本单位,可以是字母、数字、标点符号或其他符号。在计算机内部,字符通常通过特定编码系统来表示,如ASCII、Unicode等。 2. ...

    深入分析 Java 中的中文编码问题

    总的来说,解决Java中的中文编码问题,关键在于理解不同编码之间的转换,并在适当的地方指定正确的编码。开发过程中,保持良好的编码习惯,如统一项目中的编码格式,使用注释明确文件或网络资源的编码,可以有效避免...

    文件编码转换工具java

    标题中的“文件编码转换工具java”表明这是一款基于Java编程语言开发的应用,主要功能是进行文件编码的转换。在IT领域,文件编码是至关重要的,不同的编码格式适用于不同的语言和平台,例如ASCII、UTF-8、GBK等。这...

    java_各种编码转换源代码

    在Java编程语言中,编码转换是一项重要的任务,特别是在处理不同来源的数据时,如读取文本文件、网络数据传输或数据库交互。...通过深入研究和实践,可以增强对Java编码转换机制的理解,提升软件质量。

    Java中文编码问题研究.pdf

    因此,在Java程序运行时,需要将Unicode编码转换为操作系统默认支持的编码格式,这就存在着一个从Unicode编码到对应的操作系统及浏览器支持的编码格式转换、输入、输出的问题。 二、Java中文编码问题的分析 Java...

Global site tag (gtag.js) - Google Analytics