디비 스키마가 nvarchar가 아닌 varchar로 되어있을 경우
부득히가하게 스키마 변경이 불가능하다면
아래의 코드로 ?로 입력되는 문자를 unicode로 치환하면
된다.
public string GetUnicodeString(string input)
{
Encoding encoding = Encoding.GetEncoding(51949);//중국어 간체
var bytest = encoding.GetBytes(input);
var output = encoding.GetString(bytest);
Console.WriteLine(input);
Console.WriteLine(output);
List<string> unicodes = new List<string>();
string result = String.Empty;
if (input != output)
{
for (int i = 0; i < input.Length; i += char.IsSurrogatePair(input, i) ? 2 : 1)
{
int codepoint = char.ConvertToUtf32(input, i);
unicodes.Add(String.Format("&#{0}", codepoint));
}
for (int i = 0; i < input.Length; i++)
{
if (input[i].ToString() != output[i].ToString())
{
result += unicodes[i];
}
else
{
result += input[i];
}
}
}
else result = input;
return result;
}
다국어 (0) | 2014.03.31 |
---|---|
C# Color Name Table (0) | 2014.03.28 |
c# autoscroll (0) | 2014.03.28 |
파일과 연결된 아이콘 가져오기 (0) | 2014.03.21 |
웹 이미지 다운로드 (0) | 2014.03.05 |