在.NET Framework中使用UNICODE编码时,我需要您帮助解决一些令我不安的问题...
我必须使用非UNICODE应用程序与一些客户数据系统连接,这些客户拥有全球公司(中文,韩文,俄文......).所以他们必须提供一个ASCII 8位文件,它将用他们的Windows代码页编码.
因此,如果希腊客户在产品名称中向我发送包含'Σ'(sigma字母'\ u03A3')的文本文件,我将获得与211 ANSI代码点相对应的等效字母,在我自己的代码页中表示.我的电脑是法语Windows,这意味着代码页是Windows-1252,所以我将在这个文本文件中使用'Ó'......好的.
我知道这个客户是希腊客户,因此我可以通过在导入参数中强制使用windows-1253代码页来阅读他的文件.
/// <summary>
/// Convert a string ASCII value using code page encoding to Unicode encoding
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ToUnicode(string value, int codePage)
{
Encoding windows = Encoding.Default;
Encoding unicode = Encoding.Unicode;
Encoding sp = Encoding.GetEncoding(codePage);
if (sp != null && !String.IsNullOrEmpty(value))
{
// First get bytes in windows encoding
byte[] wbytes = windows.GetBytes(value);
// Check if CodePage to use is different from current Windows one …Run Code Online (Sandbox Code Playgroud)