日期:2014-05-20  浏览次数:20723 次

java 转码问题
   问题是这样,在数据库中放入的是一个"\u55DD\u5223..."形式的字符串。

这是一个造出的公式符合之类的特殊字集,它被保存在数据库中,在读出以后

把它转显示为正常的符号。


   在程序中采用

    String str = “\u4221";
    CanvasMySymbol(str);

   可以正常显示自定义的符号

  
 现在若把它从数据库中读出该字符编码后,但是读出时,却给转义\u多增加了一个"\"
str中改变成了 “\\u4221"的形式,而在显示自定义符号时,就变成显示
 只显示” \u4221“的字符串。


      String str = getDataField("ff");   //从数据库读出
      CanvasMySymbol(str);


请问java高手前辈这个如何解决?


   曾经试图这么做过,以为数据库中存在的是iso字符集,先把它给放入到字符串,
在把它放入转入到字节流。再转成字符串,但是还是显示为 \u4221 ,如下

    String  str = getDataField(”ff“);
    byte[]  b = str.getBytes("ISO8859_1");
    String str1 = new String(b);


   按理说,我存入的是一个unicod字符集的编码字符串,如何把它正常的显示?
求指导。




     
   



   

------解决方案--------------------
引用:
问题是这样,在数据库中放入的是一个"\u55DD\u5223..."形式的字符串。

这是一个造出的公式符合之类的特殊字集,它被保存在数据库中,在读出以后

把它转显示为正常的符号。


  在程序中采用

  String str = “\u4221";
  CanvasMySymbol(str);

  可以正常显示自定义的符号

  
 现在若把它从数据库中读出……

你说数据库里面存的是"\u4221",但是读出来就成了"\\u4221",然后CanvasMySymbol(str);
得到的就是"\u4221",对吗,有两种办法
第一种:
你转两遍String str = getDataField(”ff“);
String str1=CanvasMySymbol(str);
CanvasMySymbol(str1);
就能得到你想要的。
第二种:
String str = getDataField(”ff“);
String str1=str.substring(1);
CanvasMySymbol(str1);
得到你要的结果;
------解决方案--------------------
引用:
问题是这样,在数据库中放入的是一个"\u55DD\u5223..."形式的字符串。

这是一个造出的公式符合之类的特殊字集,它被保存在数据库中,在读出以后

把它转显示为正常的符号。


  在程序中采用

  String str = “\u4221";
  CanvasMySymbol(str);

  可以正常显示自定义的符号

  
 现在若把它从数据库中读出……

你说数据库里面存的是"\u4221",但是读出来就成了"\\u4221",然后CanvasMySymbol(str);
得到的就是"\u4221",对吗,有两种办法
第一种:
你转两遍String str = getDataField(”ff“);
String str1=CanvasMySymbol(str);
CanvasMySymbol(str1);
就能得到你想要的。
第二种:
String str = getDataField(”ff“);
String str1=str.substring(1);
CanvasMySymbol(str1);
得到你要的结果;
------解决方案--------------------
问题解决了就结贴吧,养成结贴的好习惯
------解决方案--------------------
引用:
问题解决了就结贴吧,养成结贴的好习惯

顶一个。结贴!