JAVA:汉字存储问题 高手进

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:59:02
定义一个字符串

String name = "堂";

这个字符串就一个字符,把它取出来

char c_name = name.charAt(0);
int low = (c_name) & 0xff;//取c_name的低位
int high = (c_name >> 8) & 0xff;//取c_name的高位
System.out.println(Integer.toHexString(high) + " " + Integer.toHexString(low));
结果是58 02

我们知道了一个汉字,就知道他在计算机中的表示方式。
现在的问题就是:如果我们知道了一个汉字(具体哪个汉字未知)在计算机中的存储的16位表示结果,我们是否可以打印出这个汉字呢?HOW TO DO IT?
encoding:I did it!

C:\Documents and Settings\Administrator>cd C:\Program Files\Java\jdk1.5.0\bin

C:\Program Files\Java\jdk1.5.0\bin>native2ascii

\u5802

now I'm reading. smile^_^

给50分吧,这代码可不太好写了。写完了才发现,你一分也不给啊。

public class Test {
public static void main(String[] args) {
System.out.println(loadConvert("\u8FD9\u70B9\u5C0F\u95EE\u9898\u8FD8\u60F3\u96BE\u5012Qdmmy6\uFF1F"));
}

public static String loadConvert(String theString) {
char aChar;
int len = theString.length();
StringBuilder outBuffer = new StringBuilder(len);

for (int x = 0; x < len; ) {
aChar = theString.charAt(x++);
if (aChar == '\\') {
aChar = theString.charAt(x++);
if (aChar == 'u') {
int value = 0;
for (int i = 0; i < 4; i++) {
aChar = theString.charAt(x++);
switch (aChar) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case