【发布时间】:2009-05-19 12:09:38
【问题描述】:
我在更改字符串的编码时遇到了一点问题。实际上,我从使用代码页 850 编码的数据库字符串中读取数据,并且我必须准备它们以适用于可互操作的 WCF 服务。
我从数据库中读取字符 \x10 和 \x11(三角形),我想将它们转换为 Unicode 格式,以防止 WCF 调用期间出现序列化/反序列化问题。 (字符 并且根据 XML 规范无效,即使 WCF 序列化它们)。
现在,我使用以下代码来隐藏字符串编码,但没有任何反应。结果字符串实际上与原始字符串相同。
我可能错过了什么......
请帮帮我!!!
伊曼纽尔
static class UnicodeEncodingExtension
{
public static string Convert(this Encoding sourceEncoding, Encoding targetEncoding, string value)
{
string reEncodedString = null;
byte[] sourceBytes = sourceEncoding.GetBytes(value);
byte[] targetBytes = Encoding.Convert(sourceEncoding, targetEncoding, sourceBytes);
reEncodedString = sourceEncoding.GetString(targetBytes);
return reEncodedString;
}
}
class Program
{
private static Encoding Cp850Encoding = Encoding.GetEncoding(850);
private static Encoding UnicodeEncoding = Encoding.UTF8;
static void Main(string[] args)
{
string value;
string resultValue;
value = "\x10";
resultValue = Cp850Encoding.Convert(UnicodeEncoding, value);
value = "\x11";
resultValue = Cp850Encoding.Convert(UnicodeEncoding, value);
value = "\u25b6";
resultValue = UnicodeEncoding.Convert(Cp850Encoding, value);
value = "\u25c0";
resultValue = UnicodeEncoding.Convert(Cp850Encoding, value);
}
}
【问题讨论】:
标签: c# .net wcf unicode encoding