타사 앱에서받은 문자열이 있으며 Windows Surface에서 C #을 사용하여 모든 언어로 올바르게 표시하고 싶습니다.
잘못된 인코딩으로 인해 내 문자열 부분은 스페인어로 다음과 같습니다.
아키 엔
반면 다음과 같이 보일 것입니다 :
아치 온
이 질문에 대한 답변에 따르면 : C #에서 문자열 인코딩을 아는 방법은 수신중인 인코딩이 이미 UTF-8로 제공되어야하지만 Encoding.Default (아마도 ANSI?)에서 읽습니다.
이 문자열을 실제 UTF-8로 변환하려고하지만 문제 중 하나는 Encoding 클래스의 하위 집합 (UTF8 및 유니 코드 속성 만)을 볼 수 있다는 것입니다. 아마도 Windows Surface API로 제한되어 있기 때문일 것입니다.
인터넷에서 찾은 일부 스 니펫을 시도했지만 지금까지 동부 언어 (예 : 한국어)에서 성공한 것으로 밝혀진 것은 없습니다. 한 가지 예는 다음과 같습니다.
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);
또한 문자열을 바이트 배열로 추출한 다음 UTF8.GetString을 사용하여 시도했습니다.
byte[] myByteArray = new byte[myString.Length];
for (int ix = 0; ix < myString.Length; ++ix)
{
char ch = myString[ix];
myByteArray[ix] = (byte) ch;
}
myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length);
내가 시도 할 수있는 다른 아이디어가 있습니까?
Encoding.Default
시스템의 ANSI 코드 페이지를 반환합니다.