2013-05-06 12 views
0

좋은 하루. 키릴 문자로 변환하는 방법

나는 서버

내가 키릴 CP-1251 문자열로 변환 할 필요가
\u041a\u0438\u0441\u0435\u043b\u0435\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 

에서이 같은 문자열을 얻었다.

어떻게해야합니까? 고맙습니다. 이 시점에서

StringBuffer decodedInput = new StringBuffer(); 
Matcher match = Pattern.compile("\\\\u([0-9a-fA-F]{4})| ").matcher(input); 
while (match.find()) { 
    String character = match.group(1); 
    if (character == null) 
    decodedInput.append(match.group()); 
    else 
    decodedInput.append((char)Integer.parseInt(character, 16)); 
} 

: 그 디코딩한다 문자의 문자 순서 인 경우

답변

1

, 먼저 (당신의 입력 문자열에 입력입니다 가정) 이런 식으로 뭔가 시작해야합니다 , 당신은 디코딩 된 입력에 자바 문자열 표현이 있어야합니다. 시스템이 CP-1251 문자 집합을 지원하는 경우

, 당신은 다음과 같은 뭔가 CP-1251에 그 변환 할 수 있습니다 :

Charset cp1251charset = Charset.forName("cp-1251"); 
ByteBuffer output = cp1251charset.encode(decodedInput.toString()); 
+0

그것은 도움이 돌아가신't. Charset은 입력 문자열의 모든 문자를 바이트로 변환합니다. 그래서 6 바이트로 변환되었지만 2 바이트 04 + 1a로 변환해야합니다. – user2160696

+0

죄송합니다, 당신이 보여 주던 자바 문자열 표현이라고 생각했습니다. 문자 그대로의 문자 시퀀스라는 것을 깨닫지 못했습니다. 내 대답을 업데이트했습니다. –

+0

와우. 너무 이상해 - 그런 간단한 작업에는 복잡한 트릭이 필요하다. 고마워요 - 당신은 내 하루를 ... – user2160696

관련 문제