2011-01-06 5 views
7

을 발견했습니다.이 문자는 question으로 문자열에 중국어 문자가 포함되어 있는지 확인할 수 있습니다. 유니 코드 범위가 맞는지 확실하지 않지만 일본어와 한국어에서는 false를 반환하고 중국어에서는 true를 반환합니다.문자가 단순화되었거나 중국어 번체 문자

캐릭터가 전통 중국어인지 간체인지 알 수 없습니다. 이걸 어떻게 알아낼까요?


갱신

Q :이은, 중국어 또는 일본어 문자의 경우 유니 코드 문자의 32 비트 값에서 인식 할 수 있습니까? 모양에 상관없이 문자가 같은 의미를 가지므로 동일한 코드로 표현해야한다는

http://unicode.org/faq/han_cjk.html

그들의 주장. 글쎄, 나에게 의미가없는 것은 그들의 해결책으로는 작동하지 않는 개별 문자를 분석하기 때문이다 :

더 좋은 해결책은 전체 텍스트를 보는 것이다. 가나가 적당하다면, 아마 일본인 일거야. 한글이 적당하다면 아마도 한국어 야.

+1

코드 페이지에서 구별 할 수 있습니까? 적어도 간소화 된 중국어는 CP 936이고 전통은 CP 950입니다. MS 및 IBM 코드 페이지는 http://www.i18nguy.com/unicode/codepages.html에서 시작하십시오. – rajah9

+4

나는 빠른 Google 검색을 수행했으며 http://unicode.org/faq/han_cjk.html을 발견했습니다. 흥미로운 질문을 몇 개 발견했으며 거기에있는 전통적인 문자들에 대해서도 논의했습니다. 희망이 도움이됩니다! – Shaded

+2

Shaded의 링크 된 FAQ가 정확하게 귀하의 질문에 대답하는 것 같습니다. 링크 메모의 예에서 "채팅"이 영어 또는 프랑스어인지 어떻게 판단 할 수 있습니까? 당신의 대답이 거기에 있다고 생각하지 않는다면, 당신의 질문을 조금 더 넓히고 싶을 것입니다. – Thanatos

답변

3

당신이 발견했다고 생각 하듯이, 당신은 할 수 없습니다. 간체 및 전통은 동일한 문자를 쓰는 두 가지 스타일입니다. 유럽 언어의 로마자와 고딕체 스크립트의 차이점과 같습니다.

+0

그래, 그런 것 같아. 양식 유형 이상의 기능. It 's a catch 22. 캐릭터가 S/T인지 여부를 알아야 값을 확인할 수 있습니다. 그래서 나는 먼저 사전을 만들고 그 다음에 체크 할 것입니다. – s84

+0

BTW - 실제로 바이트를 검사하는 방법이 있지만 유니 코드 사이트에서는 예외가 많아서 실용적이지 않다고했습니다. 그림을 이동! :) – s84

0

일부는 자입니다. Traditional 및 Simplified 문자 세트가 겹치기 때문에 기본적으로 세 가지 문자 집합이 있습니다.

  1. 기존 문자 만 사용할 수 있습니다.
  2. 단순화 된 문자 만;
  3. 변경되지 않은 문자는 그대로두고 둘 다 사용할 수 있습니다.

문자를 예로 들어 봅니다. # 2와 # 3 모두에 속합니다 ... 단순화 된 문자로 , 얼굴 및 국수를 나타냅니다. 반면 麵는 전통적인 캐릭터입니다. 따라서 Unihan 데이터베이스에서 麵는 kSimplifiedVariant이고 을 가리 킵니다. 그래서 당신은 그것이 전통적인 캐릭터라는 것을 공제 할 수 있습니다.

그러나 kTraditionalVariant이며, 을 나타냅니다. 그러나 이것은 어디 시스템 중단이다 : 당신이 그 面을 공제 할이 데이터를 사용하는 경우 가리키는하는 kTraditionalVariant을 가지고, 다른 한편으로

... 당신이 잘못된 것, 간단한 문자 만하고, 이 두 가지는 "실제"간체/번체 쌍입니다.그러나 Unihan 데이터베이스의 어떤 것도 韓 韓와 같은 경우를 麵面와 구분 짓지 않습니다.

관련 문제