2009-04-23 3 views
2

EVC++ 4로 개발중인 응용 프로그램은 Windows CE 5에서 실행되며 유니 코드를 지원해야합니다 (AFAIK wchar_t는 Windows에서 UTF-16을 사용하므로 사용하고 있습니다). "더 이국적인"캐릭터로 테스트 해보고 싶다. 특히 UTF-16에서 2 바이트가 아닌 4 바이트를 사용하는 문자의 경우 특히 그렇습니다. 따라서 이러한 문자를 텍스트 편집기에 표시하려고합니다 (임베디드 장치가 아닌 Windows XP가 설치된 데스크탑 PC의 atm).Windows에서 U + FFFF 위의 유니 코드 문자 표시

하지만 아직 관리하지 못했습니다. 예를 들어 this character을 선택했습니다. 마찬가지로 here "MPH 2B Damase"가이 문자를 지원해야합니다. 그래서 글꼴을 다운로드하여 Windows \ Fonts에 넣었습니다. 나는 다음과 같은 내용으로 hex 에디터를 (단지 확인하기 위해)를 사용하여 TEXTFILE 생성 :

나는 메모장을 열
FFFE D802 DC00

(? 유니 코드 지원해야하는, 오른쪽)과 그렇지 않은 다운로드 한 글꼴을 사용 1 문자를 의도적으로 표시하지만이 2 :

˘Ü

내가 뭘 잘못하고 있니? :)

고마워요!

hrniels

편집

: 제안으로 BOM을 틀지 , 작동하지 않습니다. 메모장 (그리고 내가 시도한 다른 편집자들도)이 경우 두 개의 사각형을 표시합니다. 흥미로운 점은 여기에 파이어 폭스와 함께 두 개의 사각형을 복사하면 올바른 문자를 볼 수 있다는 것입니다.
 나는 또한 코모도 편집으로 같은 결과를 얻으려고했습니다. 

UTF-8을 사용하면 메모장에 도움이되지 않습니다.

답변

1

텍스트 편집기가 UTF-16을 좋아하지 않을 수 있습니다. 아마 ANSI 또는 UTF-8을 가정합니다. 대신 UTF-8 동등한

시도 입력 :

0xF0 0x90 0xA0 0x80 

이것은 당신의 테스트 도움이되지 않습니다,하지만 글꼴 잘못이 있지 않은지 확인합니다. UTF-16을 지원하는 텍스트 편집기는 Komodo Edit입니다.

+1

0xFFFE는 UTF-16 (리틀 엔디안)의 사용을 나타내는 바이트 순서 표시입니다. 메모장에서이를 감지 할 수 있어야합니다. –

+0

나는 그것을 잘 알고있다. 그러나 그는 메모장을 사용하고 있는지 여부는 밝히지 않았습니다. UTF-16을 처리하지 않는 많은 텍스트 편집기가 있습니다. – Skurmedel

+0

또한 모든 편집기는 BOM을 처리 할 수 ​​없습니다. – Skurmedel

1

바이트 순서 표시를 반대로하면 어떻게됩니까?

FEFF D802 DC00

이 (바이트 시퀀스가 ​​두 문자 U + 02D8 U + 00DC, 그래서 희망 바이트의 원인이됩니다 BOM을 틀지으로 해석되고있는 순간에 의도 된 순서대로 읽을 수)

+0

+1. 솔루션처럼 보입니다. – Skurmedel

+0

아, 아마도 당신 말이 맞아. 나는 내일 그것을보고, 여기에서보고 할 것이다 :) – hrniels

+0

Unfortunatly 히 그것이 작동하지 않는다. BOM 메모장 (및 내가 시도한 다른 모든 편집자들도)을 변경하면 두 개의 사각형이 표시됩니다. 재미있는 것은 내가 파이어 폭스와 함께 두 개의 사각형을 복사하면 올바른 문자가 표시된다는 것입니다.


                            
    hrniels
                                
                            
                        
                    

1

아마 _wfopen() 설명서를 읽는 것을 잊었을 것입니다. 여기에서 인코딩 매개 변수를 지정합니다. BTW, 당신이 이미 유니 코드 (wchars)를 사용하고 있다고 가정했습니다.

BOM이 있거나없는 파일에서 UTF-8을 사용하는 것이 좋지만 fopen은 UTF-8 플래그를 사용하도록 강요합니다. _wfopen("newfile.txt", "r, ccs=UTF-8");은 BOM이 있거나 없거나 UTF-16과 함께 UTF-8과 호환됩니다. ccs=Unicode을 잘못 사용하지 마십시오. BOM이없는 UTF-8 파일을 갖는 것이 일반적입니다.

작업을 시도하기 전에 유니 코드에 대해 읽어야합니다.이것은 아주 좋은 투자로서 이것에 대해 - 유니 코드가 어떻게 작동하는지 이해하면 시간을 절약 할 수 있습니다.

여기에 시작은 http://blog.i18n.ro/newbie-guide-to-unicode/이며 기사 마지막 부분의 링크를 반드시 읽어보십시오.

유니 코드 인코딩으로 재생할 수있는 간단한 텍스트 편집기가 필요하면 Notepad++을 사용하고 메모장을 잊어 버리십시오.