2013-10-15 7 views
0

필자가 알고있는 것처럼 유니 코드 문자는 모든 문자가 고유 코드를 가지고 있다는 것을 알고있다.java와 mysql에서 같은 문자열을위한 다른 유니 코드

내 데이터베이스에 utl8을 설정했습니다. 여기

, 내가 직접이

ఉత్తరప 
్రదేశ్ 

로 저장됩니다하지만 난이 데이터베이스에 저장 한 문자열이

escapeUnicode(StringEscapeUtils.unescapeHtml("here string")); 


public String escapeUnicode(String input) { 
    StringBuilder b = new StringBuilder(input.length()); 
    Formatter f = new Formatter(b); 
    for (char c : input.toCharArray()) { 
     if (c < 128) { 
     b.append(c); 
     } else { 
     f.format("\\u%04x", (int) c); 
     } 
    } 
    return b.toString(); 
} 

를 사용 java.Then에 데이터베이스에 문자열을 (ఉత్తరప్రదేశ్) 저장하고이 유니 코드를 생성 중임

\u0c09\u0c24\u0c4d\u0c24\u0c30\u0c2a\u0c4d\u0c30\u0c26\u0c47\u0c36\u0c4d 

둘 다 브라우저에서 표시됩니다. cor 그들이 왜 둘 다 다른 유니 코드를 만들어내는거야? 사전에 감사합니다 ..

답변

3

사람들이다 하지 다른 번호 ...

  • 3081 = 0c09 = ఉ = TELUGU LETTER U
  • 3108 = 0c24 = త = TELUGU LETTER TA
  • 3149 = 0c4d = 텔루구 어 기호 비머

... 등등.

동일하게 표현하는 두 가지 다른 방법 Unicode code point.

첫 번째는 10 진수입니다 (밑 10). 두 번째 숫자는 hexadecimal입니다 (16 진수).

Formatter과 같은 클래스를 사용하는 경우 때때로 설명서를 읽는 것이 좋습니다. 그런 다음 f.format("\\u%04x"을 코드에 붙여 넣은 이유를 이해할 수 있습니다.

팁 : Mac을 사용하는 경우 UnicodeChecker 앱을 다운로드하여 Unicode에 정의 된 각 문자의 십진수와 16 진수를 확인하십시오.

+0

고마워요. – PSR

관련 문제