2012-12-04 2 views
0

C#에서 XmlSerializer를 사용하여 ASCII/UTF-8로 저장 한 XML 파일이 있습니다. 하나의 필드는 폴더 경로 위치를 포함합니다. 최근 영어가 아닌 Windows 시스템에서 경로 필드에 특수 문자가있을 수 있음을 발견했습니다. 전체 파일을 유니 코드/UTF-16로 저장할 수 있지만 몇자를 위해 파일 크기가 두 배로 늘어납니다.ASCII 파일에서 유니 코드 문자 다루기?

비 ASCII 문자를 ASCII 문자열에 삽입 할 수 있습니까?

+1

ASCII 파일이면 유니 코드 문자가 포함되지 않으며 _ 할 수 없습니다. 'ASCII'와'UTF-8'은 매우 다른 인코딩입니다 - 실제로 어느 것을 사용하고 있습니까? – Oded

+0

아 - 나는 그들이 똑같다고 생각했다. 나는 Ascii를 사용하고있다. 유니 코드는 UTF-16과 같은가요? – Sugrue

+1

아니요. 많은 유니 코드 인코딩이 있습니다. 가장 일반적인 것은 UTF-8, UTF-16 및 UTF-32입니다. UTF-8이 필요합니다. –

답변

7

ASCII/UTF-8과 같은 것은 없습니다. 그것들은 사실 서로 다른 문자셋을 인코딩하는 두 개의 별개의 인코딩입니다. 필자는 현재 ASCII 또는 Windows ANSI를 사용하고있는 것으로 의심합니다.

UTF-8은 유니 코드의 완전한 인코딩입니다. 파일에 ASCII 문자 만 있으면 UTF-8 인코딩은 ASCII 인코딩과 동일합니다. 그리고 파일이 주로 영어 인 경우, UTF-8은 가장 작은 파일을 생성하는 유니 코드 인코딩입니다.

결론 : UTF-8을 사용하십시오.

+0

감사합니다. UTF-8을 사용해보고 내 문제가 해결되는지 확인하겠습니다. – Sugrue

+0

예 - 치료를했습니다. 감사. – Sugrue