[unicode] 유니 코드, UTF, ASCII, ANSI 형식 차이

사이의 차이는 무엇입니까 Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, 및 ANSI인코딩은?

이것들은 프로그래머에게 어떤 도움이됩니까?



답변

리스트 내려 가기 :

  • 유니 코드 (Unicode) “는 인코딩이 아니지만 불행히도 많은 문서에서 특정 시스템이 기본적으로 사용하는 유니 코드 인코딩을 참조하기 위해이 문서를 부정확하게 사용합니다. Windows 및 Java에서 이것은 종종 UTF-16을 의미합니다. 다른 많은 곳에서는 UTF-8을 의미합니다. 적절하게 유니 코드는 특정 인코딩이 아닌 추상 문자 집합 자체를 나타냅니다.
  • UTF-16 : “코드 단위”당 2 바이트 이것은 .NET에서, 그리고 일반적으로 Windows와 Java에서 문자열의 기본 형식입니다. BMP ( Basic Multilingual Plane) 외부의 값 은 서로 게이트 쌍으로 인코딩됩니다. 이들은 수 없습니다하는 데 상대적으로 거의 사용,하지만 지금은 많은 소비자 응용 프로그램을 지원 이모티콘하기 위해 비 BMP 문자 인식해야합니다.
  • UTF-8 : 가변 길이 인코딩, 코드 포인트 당 1-4 바이트. ASCII 값은 1 바이트를 사용하여 ASCII로 인코딩됩니다.
  • UTF-7 : 일반적으로 메일 인코딩에 사용됩니다. 당신이 필요하다고 생각하고 당신이 메일을하지 않는 경우에, 당신은 잘못된 것입니다. (이것은 사람들이 뉴스 그룹 등에 게시하는 것에 대한 나의 경험 일뿐입니다. 메일 외부에서는 전혀 널리 사용되지 않습니다.)
  • UTF-32 : 코드 포인트 당 4 바이트를 사용하는 고정 너비 인코딩 이것은 매우 효율적이지 않지만 BMP 외부의 삶을 더 쉽게 만듭니다. 원하는 경우 MiscUtil 라이브러리의 Utf32String일부로 .NET 클래스 가 있습니다. (매우 철저하게 테스트되지는 않았습니다.)
  • ASCII : 하위 7 비트 만 사용하는 단일 바이트 인코딩. (유니 코드 코드 포인트 0-127) 악센트 등이 없습니다.
  • ANSI : 고정 된 ANSI 인코딩은 없습니다. 많은 인코딩이 있습니다. 일반적으로 사람들이 “ANSI”라고 말하면 Encoding.Default 를 통해 얻은 “내 시스템의 기본 로캘 / 코드 페이지”를 의미 하며 종종 Windows-1252 이지만 다른 로캘 일 수 있습니다.

유니 코드 페이지 에 더 많은 정보유니 코드 문제를 디버깅하기위한 팁이 있습니다 .

코드의 또 다른 큰 자원은 unicode.org 인데, 여기에는 당신이 할 수있는 것보다 더 많은 정보가 들어 있습니다. 아마도 가장 유용한 비트는 코드 차트 일 것 입니다.


답변

문자 인코딩을 시작하는 데 도움이되는 내용 : Joel on Software : 절대 최소 모든 소프트웨어 개발자는 절대적으로 유니 코드 및 문자 집합에 대해 알아야합니다 (변명 없음)

그건 그렇고-ASP.NET은 그것과 아무런 관련이 없습니다. 인코딩은 보편적입니다.


답변