1.简繁转化代码 , vc源码,我的计算机上没有vc,没有试。http://www.htmchina.com/09/03/61467524,10.htm2.PHP中字体应用释疑http://news.chinabyte.com/20020510/1610570.shtml

解决方案 »

  1.   

    有个简单的方法,VB.net下有个函数strconv可以进行简体繁体转换,添加引用Microsoft 
    Visual Basic .Net Runtimestring mStr=Microsoft.VisualBasic.Strings.StrConv("经验",Microsoft.VisualBasic.VbStrConv.TraditionalChinese,0);
      

  2.   

    在C#中除了调用API还有更简单的办法吗?例如像在VB.NET中那样的办法
      

  3.   

    標準字碼頁
    字元集標籤 Win32 字碼頁 字元集名稱 
    ansi_x3.4-1968 1252 Western 
    ansi_x3.4-1986 1252 Western 
    ascii 1252 Western 
    big5 950 繁體中文 (BIG5) 
    chinese 936 Chinese Simplified 
    cp367 1252 Western 
    cp819 1252 Western 
    csascii 1252 Western 
    csbig5 950 繁體中文 (BIG5) 
    cseuckr 949 Korean 
    cseucpkdfmtjapanese CODE_JPN_EUC Japanese (EUC) 
    csgb2312 936 Chinese Simplified (GB2312) 
    csiso2022jp CODE_JPN_JIS Japanese (JIS-Allow 1 byte Kana) 
    csiso2022kr 50225 Korean (ISO) 
    csiso58gb231280 936 Chinese Simplified (GB2312) 
    csisolatin2 28592 Central European (ISO) 
    csisolatinhebrew 1255 Hebrew (ISO-Visual) 
    cskoi8r 20866 Cyrillic (KOI8-R) 
    csksc56011987 949 Korean 
    csshiftjis 932 Shift-JIS 
    euc-kr 949 Korean 
    extended_unix_code_packed_format_for_japanese CODE_JPN_EUC Japanese (EUC) 
    gb2312 936 Chinese Simplified (GB2312) 
    gb_2312-80 936 Chinese Simplified (GB2312) 
    hebrew 1255 Hebrew  
    hz-gb-2312 936 Chinese Simplified (HZ) 
    ibm367 1252 Western 
    ibm819 1252 Western 
    ibm852 852 Central European (DOS) 
    ibm866 866 Cyrillic (DOS) 
    iso-2022-jp CODE_JPN_JIS Japanese (JIS) 
    iso-2022-kr 50225 Korean (ISO) 
    iso-8859-1 1252 Western 
    iso-8859-2 28592 Central European (ISO) 
    iso-8859-8 1255 Hebrew (ISO-Visual) 
    iso-ir-100 1252 Western 
    iso-ir-101 28592 Central European (ISO) 
    iso-ir-138 1255 Hebrew (ISO-Visual) 
    iso-ir-149 949 Korean 
    iso-ir-58 936 Chinese Simplified (GB2312) 
    iso-ir-6 1252 Western 
    iso646-us 1252 Western 
    iso8859-1 1252 Western 
    iso8859-2 28592 Central European (ISO) 
    iso_646.irv:1991 1252 Western 
    iso_8859-1 1252 Western 
    iso_8859-1:1987 1252 Western 
    iso_8859-2 28592 Central European (ISO) 
    iso_8859-2:1987 28592 Central European (ISO) 
    iso_8859-8 1255 Hebrew (ISO-Visual) 
    iso_8859-8:1988 1255 Hebrew (ISO-Visual) 
    koi8-r 20866 Cyrillic (KOI8-R) 
    korean 949 Korean 
    ks-c-5601 949 Korean 
    ks-c-5601-1987 949 Korean 
    ks_c_5601 949 Korean 
    ks_c_5601-1987 949 Korean 
    ks_c_5601-1989 949 Korean 
    ksc-5601 949 Korean 
    ksc5601 949 Korean 
    ksc_5601 949 Korean 
    l2 28592 Central European (ISO) 
    latin1 1252 Western 
    latin2 28592 Central European (ISO) 
    ms_kanji 932 Shift-JIS 
    shift-jis 932 Shift-JIS 
    shift_jis 932 Shift-JIS 
    us 1252 Western 
    us-ascii 1252 Western 
    windows-1250 1250 Central European (Windows) 
    windows-1251 1251 Cyrillic (Windows) 
    windows-1252 1252 Western 
    windows-1253 1253 Greek (Windows) 
    windows-1254 1254 Turkish (Windows) 
    windows-1255 1255 Hebrew  
    windows-1256 1256 Arabic 
    windows-1257 1257 Baltic (Windows) 
    windows-1258 1258 Vietnamese 
    windows-874 874 Thai 
    x-cp1250 1250 Central European (Windows) 
    x-cp1251 1251 Cyrillic (Windows) 
    x-euc CODE_JPN_EUC Japanese (EUC) 
    x-euc-jp CODE_JPN_EUC Japanese (EUC) 
    x-sjis 932 Shift-JIS 
    x-x-big5 950 繁體中文 (BIG5) 請注意,若為 CODE_JPN_EUC 及 CODE_JPN_JIS,字母會被轉換成字碼頁 932。ACT 字碼頁值
    下列為 ACT 可使用的特定值。字元集標籤 字碼頁數字 說明 
    CP_ACP 0 預設為 ANSI 字碼頁 
    CP_OEMCP 1 預設為 OEM 字碼頁 
    CP_MACCP 2  
    CP_THREAD_ACP 3 目前執行緒的 ANSI 字碼頁 
    CP_SYMBO 42 SYMBOL 轉譯 
    CP_UTF7 65000 Unicode (UTF-7) 
    CP_UTF8 65001 Unicode (UTF-8) 
      

  4.   

    CMIC(大象) 的方法是最实用的.
      

  5.   

    籍秋风 朋友在下使用以下代碼才能看到亂碼字變成簡體,但是該怎樣轉才能看那些亂碼字變成到繁體呢?亂碼字: 牷芛唳敃(芢熱)private string ChangeToBig5(string strText)
    {
    // 傳回 big5 字碼頁的文字
    byte[] bArrayTemp = System.Text.Encoding.GetEncoding(950).GetBytes(strText);
    return System.Text.Encoding.GetEncoding("GB2312").GetString(bArrayTemp);
    }而大象朋友說的沒錯,我試過用這個方法,但這個方法總是會出現一些問號的!
    而我要直接把那些亂碼字轉回繁體字也是不成的,要用以上袋碼再加上大象兄的方法才能轉到一點兒...請問怎麼辦才能得到好一點的效果呢?
      

  6.   

    C# 封裝了, 我們沒有必要用 API 做這個.
    再微軟例子裡面有一個範例自己改一下吧.字元是抽象實體 (Entity),可以用許多不同的字元配置或字碼頁 (Code Page) 來表示。例如,Unicode UTF-16 編碼會將字元表示成一連串 16 位元的整數,而 Unicode UTF-8 則會將相同的字元表示成一連串 8 位元的位元組。Common Language Runtime 會使用 Unicode UTF-16 (Unicode Transformation Format,16 位元的編碼格式) 來表示字元。以 Common Language Runtime 為目標的應用程式會使用編碼方式,將字元表示從原生字元配置對應至其他配置。應用程式會使用編碼方式,將字元從非原生配置對應至原生配置。下列表格會列出在 System.Text 命名空間 (Namespace) 中最常用來將字元編碼和解碼的類別。字元配置 類別 說明 
    ASCII 編碼方式 System.Text.ASCIIEncoding 轉換 ASCII 字元。 
    多重編碼 System.Text.Encoding 依照 Convert 方法中指定的方式轉換不同編碼的字元。 
    UTF-16 Unicode 編碼 System.Text.UnicodeEncoding 轉換 UTF-16 編碼。這種配置方式會將字元表示成 16 位元的整數。 
    UTF-8 Unicode 編碼 System.Text.UTF8Encoding 轉換 UTF-8 編碼。這種可變寬度的編碼配置方式會使用一到四個位元組來表示字元。 下列程式碼範例會使用 ASCIIEncoding.GetBytes 方法,將 Unicode 字串轉換成位元組陣列。陣列中的每一個位元組各代表字串中該位置字母的 ASCII 值。[Visual Basic]
    Dim MyString As String = "Encoding String."
    Dim AE As New ASCIIEncoding()
    Dim ByteArray As Byte() = AE.GetBytes(MyString)
    Dim x as Integer
    For x = 0 To ByteArray.Length - 1
       Console.Write("{0} ", ByteArray(x))
    Next[C#]
    string MyString = "Encoding String.";
    ASCIIEncoding AE = new ASCIIEncoding();
    byte[] ByteArray = AE.GetBytes(MyString);
    for(int x = 0;x <= ByteArray.Length - 1; x++)
    {
       Console.Write("{0} ", ByteArray[x]);
    }這個範例會將下列結果顯示在主控台上。位元組 69 是 E 字元的 ASCII 值;位元組 110 是 n 字元的 ASCII 值,依此類推。69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46下列程式碼範例會使用 ASCIIEncoding 類別,將上面的位元組陣列轉換成字元陣列。GetChars 方法是用來將位元組陣列解碼。[Visual Basic]
    Dim AE As New ASCIIEncoding()
    Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
    Dim CharArray As Char() = AE.GetChars(ByteArray)
    Dim x As Integer
    For x = 0 To CharArray.Length - 1
       Console.Write(CharArray(x))
    Next[C#]
    ASCIIEncoding AE = new ASCIIEncoding();
    byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
    char[] CharArray = AE.GetChars(ByteArray);
    for(int x = 0;x <= CharArray.Length - 1; x++)
    {
       Console.Write(CharArray[x]);
    }上述程式碼會將 Encoding String. 文字顯示在主控台上。
      

  7.   

    但籍秋風呀~
    為什麼950轉回GB3212便會看到那些簡體字
    但轉回BIG5繁體字又不行呢?
    那原本的950碼是繁體字還是簡體字呢?而您教我做的只不過是把那些asscii的字轉每個轉為Byte,再把它轉回為ascii...
    如果把它轉為其他的編碼用這一句不是更好嗎?byte[] source = Encoding.Unicode.GetBytes(“中国是一个美丽的国家”);
    byte[] target = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, source);而現在困擾我的是,UTF-16, UTF-8, 936, 950 的編碼好像也有繁簡體字...
    我該怎樣做才能告訴電腦我入的是簡體字,請把它轉成繁體字呢?
    或許我有點混亂了...
      

  8.   

    to  artai(阿泰):以前我做轉換的思路:
    GB2312 -> Unicode -> BIG5
    BIG5 -> Unicode -> GB2312
    BIG5 -> Unicode -> BIG5
    GB2312 -> Unicode -> GB2312中間是 Unicode, 不管輸入是簡體還是繁體出來都是你想要的編码.
    注意: 繁體機器看 GB2312 就是亂碼.
    這樣就非常清楚應該怎麼做轉換了吧.
      

  9.   

    明白了~
    即是說無論怎樣首先要把它轉為Unicode...
    謝謝!!