java怎么把utf-8的字符串转换为gb2312格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么把utf-8的字符串转换为gb2312格式相关的知识,希望对你有一定的参考价值。

Java中字符串转码,根据实际运用的环境有以下三种方式
使用Java.lang.String
这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下:

String s = "清山";
byte[] b = s.getBytes("utf-8");//编码
String sa = new String(b, "gb2312");//解码:用什么字符集编码就用什么字符集解码

java.io.InputStreamReader/OutputStreamWriter:桥转换
读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下:

InputStream is = new FileInputStream("C:/项目进度跟踪.txt");//文件读取
InputStreamReader isr = new InputStreamReader(is, "utf-8");//解码
OutputStream os = new FileOutputStream("C:/项目进度跟踪_gb2312.txt");//文件输出
OutputStreamWriter osw = new OutputStreamWriter(os, "gb2312");//开始编码

java.nio.Charset
使用nio中的Charset转换字符,示例代码如下:

Charset inSet = Charset.forName("utf-8"); // 解码字符集
Charset outSet = Charset.forName("gb2312"); // 编码字符集
CharsetDecoder de = inSet.newDecoder(); // 解码器
CharsetEncoder en = outSet.newEncoder();// 编码
参考技术A String dest = new String("srcString".getBytes(), "gb2312");

参考技术B 你是想改变java的默认编码集吗?project——》properties——》Resource——》可以看到改变默认编码集

Mysql数据库里的字符集转换,我从别人的数据库拷贝了一个表,但是那个表的字符集是gb2312

而我的是utf8的,如何把gb转成utf的,让我不要再看到乱码

提供一个思路:
使用数据库管理工具比如navicat(或其他工具),选中这张表,将这张表的内容导出,格式选择为.sql,记住只导出数据。导出后,再用记事本打开。你应该能看到一条一条的insert语句。然后,另存为,选择编码为utf-8,替代本文件或换个名字。
然后再将此表改名。手工建一张相同结构的表,使用这个原先的表名,使用utf-8编码。然后执行导入即可。
这是大致操作思路。如果你也navicat都不会用,那得先学学这个。
参考技术A iconv('UTF-8', 'GB2312', $str); //将字符串的编码从UTF-8转到GB2312 这是php转换编码的方式 还有一种是mb_substr('$str',截取开始 0, 3,‘gbk’) 截取str 0到3的值 并强制转换成 gbk追问

能不把MYSQL表里的内容(GB2312)转换成UTF8?

追答

我知道的方法很麻烦 。还不如用到的时候 转换一下.. 你可以再找找。我只能帮你这些了

本回答被提问者采纳

以上是关于java怎么把utf-8的字符串转换为gb2312格式的主要内容,如果未能解决你的问题,请参考以下文章

如何把utf-8编码的转换为gb2312

怎样把utf-8编码网页 转换为gb2312

python怎么把ASNI(GB2312)转换成UTF-8

怎么把utf-8格式的文件转为gb2312

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

怎么才能把utf-8编码的asp文件转换成gn2312