知识大全 在Java中将数据由UTF8转换成GB2312格式

Posted

篇首语:时穷节乃现,一一垂丹青。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Java中将数据由UTF8转换成GB2312格式相关的知识,希望对你有一定的参考价值。

Java进阶:在Java中将数据由UTF8转换成GB2312格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  UTF 转换成GB 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时 JVM会把输送的数据编码成UTF 格式 如果我们直接从HTTP流中提取中文数据 提取的结果为 ???? (可能更多问号) 为转换成我们能够理解的中文字符 我们需要把UTF 转换成GB 借助ISO 标准编码能够轻易的实现 下面的代码实现了这一功能

  byte [] b;  String utf _value;  utf _value = request getParameter( NAME );//从HTTP流中取 NAME 的UTF 数据  b = utf _value getBytes( _ ); //中间用ISO 过渡  String name = new String(b GB ); //转换成GB 字符

  在知道流长度的情况下将输入流转换成字节数组 Java中的输入流抽象类InputStream有int read(byte[] b int off int len)方法 参数中byte[] b是用来存放从InputStream中读取的数据 int off指定数组b的偏移地址 也就是数组b的起始下标 int len指定需要读取的长度 方法返回实际读取的字节数

  刚学Java的朋友可能要说 先定义一个与流长度等长的字节数组 调用read方法 指定起始下标为 指定读取长度与数组长度等长 不是一下子可以读出来了吗?说的没错 笔者曾经也试着这样读取数据 但后来发现在读取网络数据时很不安全 我们想想在网络上获取数据可能并没那么流畅 数据流的传送可能会断断续续 所以并不能保证一次就能读取全部数据 特别是在读取大容量数据时更是如此

  ServletInputStream inStream = request getInputStream(); //取HTTP请求流  int size = request getContentLength(); //取HTTP请求流长度  byte[] buffer = new byte[size]; //用于缓存每次读取的数据  byte[] in_b = new byte[size]; //用于存放结果的数组  int count = ;  int rbyte = ;   while (count < size)     //循环读取    rbyte = inStream read(buffer); //每次实际读取长度存于rbyte中    for(int i= ;iin_b[count + i] = buffer[i];        count += rbyte;  

  在不知道流长度的情况下将输入流转换成字节数组 前面介绍了已知流长度的情况下的转换方法 那么当我们不知道流有多长时 也就是说不能确定转换后的字节数组有多大时 该怎么处理呢?笔者查看了JDK文档之后发现ByteArrayOutputStream有一个byte[] toByteArray()方法 该方法会自动创建一个字节数组 然后返回 于是就巧妙的用ByteArrayOutputStream来作中间过渡实现转换 其它处理跟上面所介绍已知长度的情况差不多 假设需要被转换的流已经放在inStream里了 我们可以用如下的代码实现这一功能

cha138/Article/program/Java/hx/201311/27229

相关参考

知识大全 C#中将Big5繁体转换简体GB2312的代码

C#中将Big5繁体转换简体GB2312的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 C#中将Big5繁体转换简体GB2312的程序

C#中将Big5繁体转换简体GB2312的程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  u

知识大全 解决asp中uft8和gb2312转换乱码问题

  ASP程序在同一个站点中如果有UTF编码的程序又有GB编码的程序时在浏览UTF编码的页面后再浏览当前网站GB的页面GB编码的页面就会出现乱码出现这样的问题是当你浏览UTF编码的时候服务器默认用UT

知识大全 用PHP实现GB2312和Unicode间的编码转换

用PHP实现GB2312和Unicode间的编码转换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 java中如何把图片转换成二进制流

   将Image图像文件存入到数据库中我们知道数据库里的Image类型的数据是二进制数据因此必须将图像文件转换成字节数组才能存入数据库中  &nbs

知识大全 Asp.net 中将汉字转换成拼音的方法

Asp.net中将汉字转换成拼音的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ///&l

知识大全 SqlDataReader转换成string有空格问题

SqlDataReader转换成string有空格问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 解决ASP网站gb2312和utf-8乱码问题

解决ASP网站gb2312和utf-8乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一般我

知识大全 用java在Windows控制台输出utf8字符

用java在Windows控制台输出utf8字符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

基于php导出到Excel或CSV的详解(附utf8、gbk编码转换)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶