컴퓨터 지식 네트워크 - 노트북 지식 - \345\207\235\346\266\265\346\237\217은 어떤 인코딩인가요? 디코딩 후 내용은 무엇입니까?

\345\207\235\346\266\265\346\237\217은 어떤 인코딩인가요? 디코딩 후 내용은 무엇입니까?

/**8진수 데이터가 포함된 문자열을 중국어 문자열로 변환합니다.

* 예를 들어, DynamicMsg: \344\270\215\350\203\27510을 DynamicMsg: can 10*/

public static String transfromOctalToString(String dataStr) {<로 변환합니다. / p>

if (! dataStr.contains("\\")) {

return dataStr;

}

//속하지 않음 8진수 콘텐츠 문자로

StringBuilder oldBuffer = new StringBuilder();

//8진수에 속한 콘텐츠는 16진수로 변환된 후 여기에 캐시됩니다.

StringBuilder hexBuffer = new StringBuilder();

for (int i = 0; i < dataStr.length(); i ++) {

char c = dataStr.charAt(i);

if (c != '\\') {

oldBuffer.append(c);

}

//역 세 개의 슬래시 그룹이 8진수를 형성합니다.

예를 들어\20710, 실제로 207은 8진수를 형성합니다.

else {

char c1 = dataStr.charAt(i + 1);

char c2 = dataStr .charAt(i + 2);

char c3 = dataStr.charAt(i + 3);

i += 3;

//변환합니다 8진수를 10진수로, 그 다음 16진수로

String hex = Integer.toHexString((Integer.valueOf("" + c1 + c2 + c3, 8)));

//Cache 3바이트가 수집될 때까지

hexBuffer.append(hex);

String hexString = hexBuffer.toString();

//utf8 인코딩에서는 3바이트 한자는 1개입니다

if (hexString.length() == 6) {

//3바이트이면 충분합니다. 한자로 변환하여 oldBuffer에 넣습니다.

oldBuffer.append(hexStr2Str(hexString));

//한자가 충분하면 캐시를 삭제하세요.

hexBuffer = new StringBuilder();

}

}

}

oldBuffer.toString()을 반환;

}

/**

* 16진수 변환 문자열

*/

private static String hexStr2Str(String hexStr) {

String str = " 0123456789abcdef";

char[] hexs = hexStr.toCharArray();

byte[] bytes = 새 바이트[ hexStr.length() / 2];

int n;

for (int i = 0; i < bytes.length; i++) {

n = str.indexOf(hexs[2 * i]) * 16 ;

n += str.indexOf(hexs[2 * i + 1]);

bytes[i] = (바이트) (n & 0xff);

}

새 문자열(바이트, StandardCharsets.UTF_8)을 반환합니다.

}

上篇: 가상 공간, 호스트 임대 및 서버 임대의 차이점은 무엇입니까? 下篇: 죄송합니다. 휴대폰 배터리가 누출되었습니다. 아직도 쓸 수 있어요? 어떻게 처리할까요?
관련 내용