2010-08-04 7 views
7

ASCII 문자와 비슷한 유니 코드 문자를 쉽게 찾을 수있는 방법을 알고 있습니까? 예를 들어 "CYRILLIC SMALL LETTER DZE (ѕ)"입니다. 비슷한 문자를 검색하고 바꾸고 싶습니다. 이와 유사하게 나는 인간이 읽을 수있는 것을 의미한다. 당신은 그것을 보면서 차이를 볼 수 없습니다.유니 코드에서 유사한 ASCII 문자 찾기

답변

11

다른 주석 자의 언급에 따르면 Unicode normalisation ("compatibilty characters")은 공식 등가성을 찾는 것이 아니라 글립 문자 (편지 모양)의 유사점을 찾는 데 도움이되지 않습니다. (링크 된 유니 코드 기술 보고서는 매우 잘 쓰여졌 기 때문에 여전히 읽을만한 가치가 있습니다.)

내가 당신 인 경우, 문자 목록을 직접 작성하는 지루한 작업을 줄이기 위해 리소스를 검색 할 것입니다. on homograph attacks : 일부 글자가 시각적으로 비슷한 글자로 대체 된 도메인 이름을 포함하는 URL을 표시하여 악의적으로 웹 사용자를 오도하는 방법입니다. 보안상의 또 다른 Unicode Technical Report에는 문제에 대한 절이 들어 있습니다. 또한 가장 필요한 것이있을 수도 있습니다 - "confusables" table입니다. 주로 문장 부호가있는 또 다른 기사가 있는데, ASCII 중 일부는 non-ASCII code tables과 시각적으로 비슷한 문구가 있습니다.

내가 바라는 것은 당신이 그러한 공격을 구성하는 질문을하지 않는 것입니다.

+0

모든 좋은 링크와 설명 주셔서 감사합니다. 나는 실제로 그러한 공격으로부터 보호하려고 노력한다. :-) 그리고 나는 "동형 화 공격 (homograph attack)"이란 키워드로 몇 가지 추가 정보를 찾을 것입니다. – DrDol

+0

잘 듣고 있습니다 :). 네, 필요한 키워드입니다! 나는 링크를 편집했다 (그것은 구식 버전을 가리켰다). – chryss

+0

합법적 인 사용 : 국제화 테스트를 위해 유사한 문자를 사용하여 가짜 외국어 텍스트를 생성하는 도구가 있습니다. 영어를 말하는 테스터는 "외국"텍스트를 읽을 수 있지만 하드 코딩 된 영어가 아니라는 것을 분명히 알릴 수도 있습니다. 유니 코드 문자가 너무 유사하여 차이를 알 수없는 경우 작동하지 않지만 나는 주로 모음에 악센트를 더하는 것과 같은 일을한다. – Kip

-1

유니 코드 데이터베이스 : http://www.unicode.org/Public/UNIDATA/UnicodeData.txt을 참조하십시오.

각 행은 예를 들어, 유니 코드 caharacter 설명 :

심볼에 대한 유사한 (호환) 문자가 있으면
1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;; 

,이 항목의 <compat> 필드에 표시됩니다. 이 예제에서 0061 (ASCII a)은 LATIN SMALL LETTER A WITH RIGHT HALF RING 유니 코드 문자와 호환됩니다.

은 당신의 성격에 관해서는, 항목이 당신이 볼 수 있듯이, 호환성 문자를 지정하지 않는,

0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405 

입니다.

+0

호환성 필드는 해당 문자와 ​​동일한 의미의 문자 시퀀스를 나타냅니다. 귀하의 예제에서 호환되는 시퀀스는 'U + 0061' (문자'a ')와'U + 02BE '('오른쪽 하프 링 '수정 자) 순입니다. 다른 알파벳의 문자의 경우 호환 시퀀스가있는 것이 매우 드뭅니다. OP가 추가 정보 없이는 불가능한 작업을 수행하게 만듭니다. – cHao

+0

OP는 정확한 것이 아니라 'ASCII 문자와 비슷합니다'라고 말했습니다. 오른쪽 반쪽 고리가있는 'a'를 찾고 있다면 다른 것이 없다면 ASCII 'a'로 정할 수 있습니다. – adamk

+0

동의 - 그 경우. 하지만 키릴 문자 & # x0455와 유사한 ASCII 문자를 찾고 있다면 OP가 사용하는 예제가됩니다. 작동하지 않습니다. – cHao