我查了一下api没有找到,而且,我想,从理论上来说这种函数是不存在的。
因为同一个string,不同的encode,显示时就会出现不同的值,但是在class文件里是用一样的unicode表示的。
所以一个string可能对应很多中encode,假如日文和中文都是通过用二个最高位为1的字节来表示一个字符,那么同一个string就可能是一个中文字符,也可能是一个日文字符,显示的时候就看你的系统环境了吧。
因为同一个string,不同的encode,显示时就会出现不同的值,但是在class文件里是用一样的unicode表示的。
所以一个string可能对应很多中encode,假如日文和中文都是通过用二个最高位为1的字节来表示一个字符,那么同一个string就可能是一个中文字符,也可能是一个日文字符,显示的时候就看你的系统环境了吧。
String里要是有一个属性,
用来描述自己(this)的编码方式就好了!
拿出来 用什么编码
不过 还有你的 数据库支持什么 编码?
最近我们也遇到了编码问题
环境是 linux+apache+tomcat+mysql
这些东西用的都是 iso-8859-1编码
所以存中文的时候,要把gb2312转成8859_1
去数据的时候 在转回来
很麻烦
1。 在jvm中所有的字符都是unicode.
2. String的encode方式是由jvm属性file.encoding指定的。所有读进和写出的String都会被转换成file.encoding指定的编码方式。(inputstream和outputstream除外).所以在jvm中所有的String对象的编码方式都是file.encoding指定的编码方式。举个小例子:
public class a{
main(String[]){
String s = "中文";
System.out.println("length:"+s.length());
}
}javac -Dfile.encoding=GBK a.java
java -Dfile.encoding=GBK a.java
结果是 :2javac -Dfile.encoding=ISO8859-1 a.java
java -Dfile.encoding=ISO8859-1 a.java
结果是 :4由此可见,String对象的编码方式和file.encoding有关。搂主所说的api是不存在而且也没有必要存在的。
除非你自己设计一个MyString类,所有用到的string的地方都用你自己定义的,
在里面加一个编码方式的属性
{
byte[] b=s.getBytes("编码方式");
String sTemp=new String(b);
return sTemp;
}
返回你所想要编码方式的字串。