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

如何将字符串“EP適用が完了しないデバイスの検出”转换为unicode 格式!谢谢
如何将字符串“EP適用が完了しないデバイスの検出”转换为unicode   格式!谢谢
转换完为:
EP\u9069\u7528\u304C\u5B8C\u4E86\u3057\u306A\u3044\u30C7\u30D0\u30A4\u30B9\u306E\u691C\u51FA

------解决方案--------------------
到DOS下去敲native2ascii ,回车后再敲入 "EP適用が完了しないデバイスの検出 "就能得到了.前提条件是你装了jdk的
------解决方案--------------------

public class Main {

public static void main(String[] args) throws Exception {
System.out.println(saveConvert( "EP適用が完了しないデバイスの検出 ", true));
}

/*
* Converts unicodes to encoded \uxxxx and escapes
* special characters with a preceding slash
*/
private static String saveConvert(String theString, boolean escapeSpace) {
int len = theString.length();
int bufLen = len * 2;
if (bufLen < 0) {
bufLen = Integer.MAX_VALUE;
}
StringBuffer outBuffer = new StringBuffer(bufLen);

for(int x=0; x <len; x++) {
char aChar = theString.charAt(x);
// Handle common case first, selecting largest block that
// avoids the specials below
if ((aChar > 61) && (aChar < 127)) {
if (aChar == '\\ ') {
outBuffer.append( '\\ '); outBuffer.append( '\\ ');
continue;
}
outBuffer.append(aChar);
continue;
}
switch(aChar) {
case ' ':
if (x == 0 || escapeSpace)
outBuffer.append( '\\ ');
outBuffer.append( ' ');
break;
case '\t ':outBuffer.append( '\\ '); outBuffer.append( 't ');
break;
case '\n ':outBuffer.append( '\\ '); outBuffer.append( 'n ');
break;
case '\r ':outBuffer.append( '\\ '); outBuffer.append( 'r ');
break;
case '\f ':outBuffer.append( '\\ '); outBuffer.append( 'f ');
break;
case '= ': // Fall through
case ': ': // Fall through
case '# ': // Fall through
case '! ':
outBuffer.append( '\\ '); outBuffer.append(aChar);
break;
default:
if ((aChar < 0x0020) || (aChar > 0x007e)) {
outBuffer.append( '\\ ');
outBuffer.append( 'u ');
outBuffer.append(toHex((aChar > > 12) & 0xF));
outBuffer.append(toHex((aChar > > 8) & 0xF));
outBuffer.append(toHex((aChar > > 4) & 0xF));
outBuffer.append(toHex( aChar & 0xF));
} else {
outBuffer.append(aChar);
}
}
}
return outBuffer.toString();
}

/**
* Convert a nibble to a hex character
* @param nibble the nibble to convert.
*/
private static char toHex(int nibble) {
return hexDigit[(nibble & 0xF)];
}

/** A table of hex digits */