如:“锛燂紵锛?”如何用java转成正常中文显示,该数据已存入数据库;现在要把它取出来,转成正常中文,再存进数据库;就这点分了,求教 |
|
2分 |
数据库里面乱码吗
|
数据库里存的已经是乱码,
|
|
new String(mes.getBytes(“GBK”),”utf-8″);这种方法转貌似不行
|
|
4分 |
我试了下,直接拿你这个字符串去转没用,你知道你存进去是什么格式的么?
|
4分 |
这个你拿出来没办法改,我试了很多方法, 拿个简单的例子:
你随便转码一段中文, 然后将乱码复制出来,然后用反的转码去转,结果发现编码又不同了… |
2分 |
存进去就不能让他乱码,出来是不可转的
|
据说是GBK;我也不清楚了; |
|
2分 |
转了也会不一样
|
2分 |
你传过去的就是乱码的文字吧
|
2分 |
一般默认是utf-8, GBK(中国开发的东东 才会是)
|
这数据是别人存进数据库的,来源已没必要去追究了,也追究不到了,我现在要把他从数据库取出来,转成正常中文;再存进去
|
|
2分 |
查看入数据库之前是否乱码,如果入数据后乱码,设置下数据库编码
|
这个可以确认别人输入的是中文,这个乱码的入口现在已处理,就已存进去的乱码数据还没处理 |
|
2分 |
你是中 界面到后台 吧 在你 即将存入数据库 前到控制台 输出 是 乱码吗
|
2分 |
你试试用
楼主用的是什么数据库工具? PL/SQL么,还是Navicat, 如果是PL/SQL,可以看看这个 |
2分 |
如果不是乱码, 用的是MySQL数据库的话 就去修改MySQL的存储格式改成utf-8
|
数据库是Oracle;
sqldeveloper 和DbVisualizer都用 |
|
2分 |
即将存入数据库 前到控制台 输出 是 乱码吗
|
2分 |
数据库里的数据怎么能是乱码的呢?这样完全不合理
|
2分 |
预估乱码一定出现在入库前
|
8分 |
这个看你存数据库之前,中文是否出现乱发,你可以在后台打印出来看看,如正常,看下当前编码,和数据库用的编码是否一致。
post请求,直接request.setCharacterEncoding(“utf-8″),把浏览器的编码也设成utf-8 get请求,超链接,sendRedirect 用getBytes转换下,new String(str.getBytes(“iso-8859-1”),”utf-8”)处理 |
唉,折腾了一上午,看样子这批乱码数据是无法还原了;
|
|
2分 |
按道理是能还原的 你看看你们之前存进数据库的是什么编码
然后 再把数据这批数据拿出来做对应的编码 你们没改数据库的编码格式吧? |
6分 |
估计是木有办法了,存进去的东西已经带了很多问号。按经验,很多中文编码在无法识别的字符时,一般会用问号代替,也就是说,原来存进去的东西,很多因为编码不正确而识别不了的字符,已经被统一存为问号了,源数据已经丢失,还原不了喽。
|
2分 |
看看你页面最上面创建的是什么编码格式如果不是UTF-8可以加上
或者后台接收参数时进行编码格式转换 String value = new String (request.getParameter(“name”).getBytes(“ISO-8859-1″),”UTF-8”); 如果以上都解决不了的话 可能是数据库编码设置问题 MYSQL一般会出现这样的问题 可以用以下方法查看编码格式 其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码; character_set_results结果集的编码; character_set_server数据库服务器的编码; 只要保证以上四个采用的编码方式一样,就不会出现乱码问题。 |