문제는 두 단계로 분류 통로 MS-97 마이그레이션 : UTF-8 인코딩 된유니 코드 Woes! MS-Access 2007에서
문제점 단계 1. 액세스 97dB 함유 XML 스트링.
이 문제는 다음과 같이 요약됩니다. Access 97 db에는 UTF-8로 인코딩 된 XML 문자열이 들어 있습니다. 그래서 UTF-8에서 유니 코드로 XML 문자열을 별도로 변환하기위한 패치 도구를 만들었습니다. UTF8 문자열을 유니 코드로 변환하기 위해 함수를 사용했습니다. MultiByteToWideChar (CP_UTF8, 0, PChar (OriginalName), -1, @newName, Size);. (여기서 newName은 "newName : WideChar의 배열 [0..2048],"으로 선언 된 배열입니다.
이 함수는 대부분의 경우 잘 작동하며, Spainsh, Arabic, 문자로 검사했습니다. 하지만 나는 질식하고있는 그리스 문자와 중국 문자에 대해 연구하고있다. 같은 일부 그리스어 문자를 들면
"나는 • I ... γ. ISI ± II ± βιά"(액세스-97에 저장된 )는 결과 새 문자열 사이에 널 부르는 것들은를 포함하고 때를에 저장 wide-string 문자가 잘 리게됩니다.
" ¢ »Âμ?"(은 Access-97에 저장 됨)와 같은 일부 중국어 문자의 경우 결과는 "? ¢»? μ?"와 같이 완전히 터무니 없습니다.
문제 2 단계 문자열이 응용 프로그램 GUI 유니 코드 입력을 받아, 내가 아랍어와 스페인어 문자로 확인 액세스-97
처음에 저장 액세스 97dB 텍스트, 명시 적으로 문자가 필요하지 않습니다 부호화하는 것을 다음 보인다 . 그러나 다시 문제는 그리스 문자와 chineese 문자가 함께 제공됩니다.
나는 텍스트 변환을 위해 위에서 언급 한 동일한 기능을 시도했다 (올바른가?), 그 결과는 다시 붕괴되었다. 아웃 변환으로 괜찮은 Spainsh 문자는 유니 코드 문자가 손실되거나 일반 Ascii Alphabets으로 변환됩니다. 1.
나를 인도 해주십시오 단계에서 mentined으로 그리스와 Chineese 문자
비슷한 동작을 보여줍니다. 올바른 접근 방식을 취하고 있습니까? 주위에 다른 방법이 있습니까 ??? 글쎄 지금은 혼란스럽고 질문이 가득합니다.
어떤 델파이 버전입니까? Delphi 2009부터 Unicode에 대한 지원이 많이 바뀌 었습니다. – mjn
델파이 2006 – Nains
'UTF-8에서 유니 코드로 변환'할 방법이 없습니다. 유니 코드는 문자 인코딩이 아닙니다 :) Access 2007로 변환하려면 주어진 데이터베이스 테이블에서 사용하는 charcter 인코딩을 알아야합니다 (예 : UTF -16 (WideChar와 동일하지 않음) – mjn