Programming
No. | 818 |
Name. | swindler |
Subject. | 복잡한 유니코드의 세계 |
Main Cate. | 개발일반 |
Sub Cate. | |
Date. | 2021-04-01 17:25 |
Hit. | 929 (121.134.199.74) |
File. | |
최근에 작업을 하다 이상한 코드를 발견함 찾아보니 하나는 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL, 하나는 MATHEMATICAL SANS-SERIF ITALIC CAPITAL replaceAll("\uD835\uDE64", "o"); 이렇게 하면 첫번째 케이스의 소문자 o를 변환할수는 있음 소문자 코드셋은 replaceAll("[\uD835\uDE56-\uD835\uDE6F]", "-"); 두번째 케이스의 대문자 O는 replaceAll("\uD835\uDE16", "O"); 뭐 이런식이다. 참고로 아래 사이트에서 코드를 찾을 수는 있다. https://www.fileformat.info/info/unicode/char/1d616/index.htm Java의 icu4j 라는 패키지가 있어서, 어떠거는 변환이 가능하기는 하다. String TRANSLITERATE_ID = "NFD; Any-Latin; NFC"; String NORMALIZE_ID = "NFD; [:Nonspacing Mark:] Remove; NFC"; String r = cRowSet.getString("TITLE"); temp = Transliterator.getInstance(TRANSLITERATE_ID + "; " + NORMALIZE_ID).transform(r); log.debug("R : " + r); log.debug("ICU4 : " + temp); out.println("<br>ICU4 : " + temp); temp = Transliterator.getInstance("Any-Latin; NFD; [^\\p{Alnum}] Remove").transform(r); log.debug("R : " + r); log.debug("ICU4 : " + temp); out.println("<br>ICU4 : " + temp); temp = Transliterator.getInstance("Traditional-Simplified").transform(r); log.debug("R : " + r); log.debug("ICU4 : " + temp); out.println("<br>ICU4 : " + temp); temp = Transliterator.getInstance("Any-Latin; Latin-ASCII").transform(r); log.debug("R : " + r); log.debug("ICU4 : " + temp); out.println("<br>ICU4 : " + temp); [바로가기 링크] : http://coolx.net/cboard/develop/818 |
|
|
|
[Modify] [Delete] | [Reply] [List] |