2010-04-23 4 views
3

일부 dll (일부 외부 데이터 소스의 래퍼) 문자열을 Windows-1250 코드 페이지에 수신하고 있는데이 문자열을 SQL Server 데이터베이스의 테이블에 유니 코드로 올바르게 삽입하고 싶습니다. 해당 데이터를 보유해야하는 데이터베이스의 특정 행은 NVarchar 유형이므로 유니 코드로 변환하여 C# 코드로 변환해야만 매개 변수로 전달할 수 있습니다. 모든 것이 잘되고 멋지지만 나는 전환 단계를 발견했습니다. 나는이, 나는 DJ, đ, C, C, C 또는 C와 같은 올바른 문자를하지 않는 테이블에 문자열을 반환 삽입하면Windows-1250으로 인코딩 된 문자열을 유니 코드로 변환하는 방법은 무엇입니까?

private static String getUnicodeValue(string string2Encode) // 
{ 
    Encoding srcEncoding = Encoding.GetEncoding("Windows-1250"); 
    UnicodeEncoding dstEncoding = new UnicodeEncoding(); 
    byte[] srcBytes = srcEncoding.GetBytes(string2Encode); 
    byte[] dstBytes = dstEncoding.GetBytes(string2Encode); 
    return dstEncoding.GetString(dstBytes); 
} 

:

나는 다음과 같은 있지만 작동하지 않는 시도 .

제발, 도와주세요! :)

답변

8

문제는 string string2Encode은 이미 유니 코드입니다. (UTF-16은 .net의 내부 인코딩입니다.) 따라서 windows-1250에 문자열을 사용하려면 byte[]을 전달해야합니다. Encoding.GetEncoding("windows-1250").GetString()

관련 문제