用API不好把。用.net的函数不是更方便么?

解决方案 »

  1.   

    以下引用自(polarlm(今年本命年)的回复)
    微软提供的这个功能在Microsoft.VisualBasic.Strings.StrConv中,十分容易地就可以调用它,下面是一个简单的将简体转为繁体的例子:
    using Microsoft.VisualBasic;
    ……
    string source = “中国是一个美丽的国家。”;
    string target = Strings.StrConv(source, VbStrConv.TraditionalChinese, 0);
    然后我们就得到了内容为:“中國是一個美麗的國家。”的字符串target。如果想将繁体转为简体,只需要将第2个参数改为VBStrConv.SimplifiedChinese就可以了。
    当然这个调用简单的函数还有其他强大的功能,比如提供日文平假名和片假名的转换等。我建议读者一定要抽时间读一下MSDN中关于此功能的介绍。ms-help://MS.MSDNQTR.2003FEB.2052/vblr7/html/vafctstrconv.htm
      

  2.   

    我这是使用以上说的VB.Net中的这个功能,这个我在简休Win2000中是可以转换过来,且可以看到,我将编译好的程序,放到繁体Win98中就转换不过来,不知道为什么?
      

  3.   

    我写的一个简体转繁体的类:using System;
    using System.Data;namespace VirunConvertor
    {
    /// <summary>
    /// 将简体中文转化为繁体中文。
    /// </summary>
    public class ConvS2T
    { static public string TraditionalChinese(string SimplifiedChinese)
    {
    return Microsoft.VisualBasic.Strings.StrConv(SimplifiedChinese,Microsoft.VisualBasic.VbStrConv.TraditionalChinese,0);
    } static public string TraditionalChinese(string SimplifiedChinese,bool ConvertWords)
    {
    string sSimplified=null;
    if(ConvertWords)
    {
    sSimplified=WordsConvert(SimplifiedChinese);
    }
    else
    {
    sSimplified=SimplifiedChinese;
    }
    return Microsoft.VisualBasic.Strings.StrConv(sSimplified,Microsoft.VisualBasic.VbStrConv.TraditionalChinese,0);
    } static public string Big5Chinese(string Gb2312Chinese)
    {
    string sTraditional=TraditionalChinese(Gb2312Chinese);
    byte[] bytes = System.Text.Encoding.GetEncoding("big5").GetBytes(sTraditional);
    return System.Text.Encoding.GetEncoding("gb2312").GetString(bytes);
    } static public string Big5Chinese(string Gb2312Chinese,bool ConvertWords)
    {
    string sTraditional=TraditionalChinese(Gb2312Chinese,ConvertWords);
    byte[] bytes = System.Text.Encoding.GetEncoding("big5").GetBytes(sTraditional);
    return System.Text.Encoding.GetEncoding("gb2312").GetString(bytes);
    } static protected string WordsConvert(string Text)
    {
    DataSet ds=new DataSet();
    ds.ReadXml("WordsTable.xml");
    foreach(DataRow row in ds.Tables[0].Rows)
    {
    Text=Text.Replace(row[0].ToString(),row[1].ToString());
    }
    return Text;
    }
    }
    }
      

  4.   

    我遇到和你一样的问题,不过我是在读.txt文件时遇到的,还是用VB的StrConv函数,不过读进来时根据.txt的格式采用不同的编码
    //Encoding.GetEncoding(950) 即繁体中文BIG5,
    //Encoding.GetEncoding(936) 即间体中文GBK。
    private Encoding getEncoding()
    {
         switch(this.encodingStyle)
    {
             case "0" : return this.textDeal == "0" ? Encoding.GetEncoding(950) : Encoding.GetEncoding(936);
    case "1" : return Encoding.Unicode;
    case "2" : return Encoding.UTF8;
    case "3" : return Encoding.BigEndianUnicode;
    default : break;
    }
    return Encoding.GetEncoding(936);
    }希望对你又帮助
      

  5.   

    to:popcorn(米花) ,在繁体Win98下还是不行
      

  6.   

    http://www.codeproject.com/useritems/Chinese_Style_Converter.asp