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字符集的编码字符串,如何把它正常的显示?
求指导。
------解决方案--------------------
你说数据库里面存的是"\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);
得到你要的结果;
------解决方案--------------------
你说数据库里面存的是"\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);
得到你要的结果;
------解决方案--------------------问题解决了就结贴吧,养成结贴的好习惯
------解决方案--------------------
顶一个。结贴!