当前位置: 代码迷 >> Java Web开发 >> 100求关于gb231和big5转换为utf-8的有关问题
  详细解决方案

100求关于gb231和big5转换为utf-8的有关问题

热度:95   发布时间:2016-04-17 13:10:48.0
100求关于gb231和big5转换为utf-8的问题。
现在在oracle   db中保存的是gb或者big5编码的数据,在原来的网页上显示的是gb或者big5,所以从数据库中读出来的东西在网页上显示并没有问题。但是现在客户要求所有的网页都要转成utf-8编码,但db不能转编码。我尝试过把JSP中
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 "   />
转成
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=utf-8 "   />

然后在jsp中加入
String   gb_value   =   resultSet.getString( "name ");
byte[]   b   =   gb_value.getBytes( "gb2312 ");  
String   utf8_name   =   new   String(b,   "UTF-8 ");  

结果输出 <%=utf8_name%> 时,显示乱码?由于只有jsp文件,没有web.xml。所以我本来想有filter来做都不可以。请问各位大虾有什么办法帮帮小弟呢?100分求最佳答案!

------解决方案--------------------
这句byte[] b = gb_value.getBytes( "gb2312 ")改成byte[] b = gb_value.getBytes( "ISO-8859-1 ")试试.
------解决方案--------------------
ByteArrayInputStream in = new ByteArrayInputStream(gb_value.getBytes);
InputStreamReader reader = InputStreamReader(in, "GBK ");
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStreamWriter writer = OutputStreamWriter(out, "UTF-8 ");
int i = 0;
while((i = reader.read()) != -1)
writer.write(i);
String utf8_name = out.toString( "UTF-8 ");

试试看吧,没环境没测

建议你把这个写成公用的函数,读GBK的字符串返回UTF-8的字符串。


------解决方案--------------------
不止光改动 <meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 " />

还要文件-〉右键-〉Properties-〉Text file encoding。这个文件编码格式也给改掉