首页 > 编程知识 正文

java中如何修改字符串编码,java 字符串设置编码

时间:2023-12-29 20:32:10 阅读:331346 作者:GZDP

本文目录一览:

java中如何修改字符串编码?

假设你的字符串的字节数组是buf,按照GBK解析这个字符串的方法就是如下

String

str=new

String(buf,0,buf.length,"GBK");

如果是utf-8编码,就把GBK换成utf-8即可

java如何把string转为utf-8

可通过以下代码转:

/**

* Get XML String of utf-8

*

* @return XML-Formed string

*/

public static String getUTF8XMLString(String xml) {

// A StringBuffer Object

StringBuffer sb = new StringBuffer();

sb.append(xml);

String xmString = "";

String xmlUTF8="";

try {

xmString = new String(sb.toString().getBytes("UTF-8"));

xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");

System.out.println("utf-8 编码:" + xmlUTF8) ;

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// return to String Formed

return xmlUTF8;

}

Java programming language具有目前大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的"形式和感觉",但它要比C++语言更易于使用,而且在编程时彻底采用了一种"以对象为导向"的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。目前,最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。

请问java如何改变字符串的编码方式

byte[] b=string.getBytes("GB2312");//使用GB2312编码方式对字符串string进行编码

//这时要想将字节数组b的内容正确解码只能使用GB2312的编码方式进行解码,即

String str=new String(b,"GB2312");//这里若使用UTF-8编码方式来进行解码就会乱码

//将eclipse默认的编码方式改为UTF-8,只是用该编码方式对.java源文件进行编码保存

//这个对new String(string.getBytes("GB2312"),"UTF-8")没啥影响的

//因为从java源文件获取字符串string时,已经通过UTF-8编码方式进行解码了

//而string.getBytes("GB2312")是使用指定的编码方式对字符串string进行从新编码

//这两者之间没啥关系的

Java中如何把GBK编码的字符串转成utf-8编码

我先解释一下我对你的问题的理解 :

你的问题有点笼统 可以这么理解两个意思 : 一 ,你是想吧一个gbk编码的字符串用utf-8格式来编码

String s = new String ("全国".getBytes("GBK"),"GBK");

虽然这个时候的s是GBK编码的 但是s还是中文字符的 所以 上面这位同胞用 new(s.getBytes("GBK"),"UTF-8")的方式肯定是错的 应该用 String s1 = new String (s.getBytes("UTF-8"),"UTF-8") 这样s1就是UTF-8编码的字符串了

二,如果是遇见乱码问题 比如 String s = new String ("全国".getBytes("GBK"),"GBK");

这样的s就是gbk编码的 现在你要把GBK格式的编码用UTF-8去编码 肯定就会出现乱码

String s2 = new String(s.getBytes("GBK"),"UTF-8"); 这个s2肯定是乱码的 而且这样就根本解不出来了 系统出现的乱码显示的时候才会出现编码错误 所以 一般出现乱码 只要把输入流换个编码解析一下就ok了 还有什么不明白 可以问我

Java怎么将字符串转换为GB2312原编码

@Test

public void test333(){

String a="青白";

try {

byte[] b=a.getBytes("GB2312");

System.out.println(bytesToHexFun1(b));

 

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

//将byte数组转成16进制字符串

 public static String bytesToHexFun1(byte[] bytes) {

    char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', 

            '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

        // 一个byte为8位,可用两个十六进制位标识

        char[] buf = new char[bytes.length * 2];

        int a = 0;

        int index = 0;

        for(byte b : bytes) { // 使用除与取余进行转换

            if(b  0) {

                a = 256 + b;

            } else {

                a = b;

            }

            buf[index++] = HEX_CHAR[a / 16];

            buf[index++] = HEX_CHAR[a % 16];

        }

        return new String(buf);

    }

    

中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。