2011-08-16 2 views
3

대상 인코딩 (CP 1047)에서 지원되지 않는 문자가있는 문자열을 인코딩하려고합니다.유니 코드 문자를 유사한 EBCDIC 1047 문자에 자동으로 매핑합니다.

해당 문자를 cp1047에 해당하는 표준/공통/쉬운 방법으로 매핑 할 수 있습니까?

예를 들어, 텍스트에는 멋진 큰 따옴표 문자 ()가 있고 곧은 큰 따옴표 (")로 변환하고 싶습니다.

물론 내 코드에서 바꿀 수는 있지만 더 나은 방법일까요? 내가 알지 못하는 오픈 소스 도구 또는 API가 있습니까?

+4

대다수의 유니 코드 문자는 동등하지 않습니다. – SLaks

+1

"equivalent"를 정의하십시오. –

+1

이 질문은 괜찮은보고 변환 테이블이 웹 페이지를 가리키는 http://stackoverflow.com/questions/4808967/replacing-unicode-punctuation-with-ascii-approximations http://lexsrv3.nlm.nih.gov/LexSysGroup /Projects/lvg/current/docs/designDoc/UDF/unicode/DefaultTables/symbolTable.html – msandiford

답변

1

EBCDIC (CP 1047)에서 유니 코드 문자를 인코딩하려면 UTF-EBCDIC이 필요합니다 (단, 변환 할 수있는 기존 도구는 모르지만).

또는 Percent-encoding 또는 XML/HTML encoding의 비표준 양식을 사용합니다. 이 두 인코딩 중 하나가 인코딩 용 기존 도구 (예 : Commons Lang StringEscapeUtils)를 가지고있을 것입니다.

마지막으로 확장 문자를 CP 1047 공간에 '매핑'하려면 문자로 소스 문자열 문자를 스캔하고 Map<Char, Char> (또는 Map<Char, String>)의 결과 문자열을 작성해야합니다. 오랫동안 당신이 처리해야하는 확장 된 문자와 원하는 등가물/대체 문자를 아는 한 오래.