> 백엔드 개발 > C++ > C#에서 UTF-8 문자열을 ISO-8859-1로 올바르게 변환하는 방법은 무엇입니까?

C#에서 UTF-8 문자열을 ISO-8859-1로 올바르게 변환하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-08 14:21:40
원래의
512명이 탐색했습니다.

How to Correctly Convert UTF-8 Strings to ISO-8859-1 in C#?

C#에서 UTF-8에서 ISO-8859-1 문자열 변환을 올바르게 처리

UTF-8 문자열을 ISO-8859-1(Latin-1)로 직접 변환하면 데이터 손실 및 문자 손상이 발생하는 경우가 많습니다. 이는 UTF-8이 가변 길이 인코딩을 사용하는 반면 ISO-8859-1은 고정 길이, 단일 바이트 인코딩을 사용하기 때문입니다. 적절한 바이트 변환 없이 단순히 인코딩을 변경하면 잘못된 출력이 발생합니다.

정확한 변환의 핵심은 Encoding.Convert 방식을 사용하는 데 있습니다. 이 방법은 UTF-8 바이트를 ISO-8859-1에 해당하는 바이트로 적절하게 매핑하여 필요한 변환을 처리합니다. ISO-8859-1에 없는 문자는 가장 가까운 문자로 대체되거나 손실될 수 있습니다.

수정된 C# 코드는 다음과 같습니다.

<code class="language-csharp">Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string utf8String = "ÄäÖöÕõÜü"; // Example UTF-8 string
byte[] utf8Bytes = utf8.GetBytes(utf8String);
byte[] isoBytes = Encoding.Convert(utf8, iso, utf8Bytes);
string iso88591String = iso.GetString(isoBytes);</code>
로그인 후 복사

이 코드는 먼저 원본 문자열에서 UTF-8 바이트를 가져옵니다. 그런 다음 Encoding.Convert은 이러한 바이트를 ISO-8859-1에 적합한 표현으로 변환합니다. 마지막으로 결과 바이트 배열은 ISO-8859-1 인코딩을 사용하여 디코딩되어 최종 문자열을 생성합니다. 이 과정에서 ISO-8859-1 문자 세트 이외의 모든 문자가 손실되거나 대체될 수 있다는 점을 기억하세요.

위 내용은 C#에서 UTF-8 문자열을 ISO-8859-1로 올바르게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿