当前位置: 代码迷 >> Delphi >> 怎么将简体字保存到繁体数据库而不会出现乱码
  详细解决方案

怎么将简体字保存到繁体数据库而不会出现乱码

热度:7034   发布时间:2013-02-25 00:00:00.0
如何将简体字保存到繁体数据库而不会出现乱码?
如何将简体字保存到繁体数据库而不会出现乱码? 
Client环境:简体系统,写入简体字
Server:SQL Server2000数据库语言,Chinese_Taiwan_Stroke_BIN

现在出现的情况就是 有些字写入数据库后就变成?了
------解决方案--------------------------------------------------------
将数据库中相应的字段类型改为NCHAR,NVARCHAR,用参数传值即可,.NET是Unicode编码不分简繁体...一定要拼字符串在字符串前加上N字头...如N'简体繁體都一樣'...
------解决方案--------------------------------------------------------
问题已经解决了,谢谢。我是用的以下这两个函数进行 写入时 简转繁,读出时  繁转简  
function   GBCht2Chs(GBStr:String):AnsiString;     //繁体转简体
function   GBChs2Cht(GBStr:String):AnsiString; //简体转繁体

function   GBCht2Chs(GBStr   :   String):   AnsiString;   
  {进行GBK繁体转简体}   
  var   
      Len:   Integer;   
      pGBCHTChar:   PChar;   
      pGBCHSChar:   PChar;   
  begin   
      pGBCHTChar   :=   PChar(GBStr);   
      Len   :=   MultiByteToWideChar(936,0,pGBCHTChar,-1,nil,0);   
      GetMem(pGBCHSChar,Len*2+1);   
      ZeroMemory(pGBCHSChar,Len*2+1);   
      //GB   CHS   ->   GB   CHT   
      LCMapString($804,LCMAP_SIMPLIFIED_CHINESE,pGBCHTChar,-1,pGBCHSChar,Len*2);   
      Result   :=   String(pGBChsChar);   
      //FreeMem(pGBCHTChar);   
      FreeMem(pGBCHSChar);   
  end;   
    
  function   GBChs2Cht(GBStr   :   String):   AnsiString;   
  {进行GBK简体转繁体}   
  var   
      Len:   Integer;   
      pGBCHTChar:   PChar;   
      pGBCHSChar:   PChar;   
  begin   
      pGBCHSChar   :=   PChar(GBStr);   
      Len   :=   MultiByteToWideChar(936,0,pGBCHSChar,-1,nil,0);   
      GetMem(pGBCHTChar,Len*2+1);   
      ZeroMemory(pGBCHTChar,Len*2+1);   
      //GB   CHS   ->   GB   CHT   
      LCMapString($804,LCMAP_TRADITIONAL_CHINESE,pGBCHSChar,-1,pGBCHTChar,Len*2);   
      Result   :=   String(pGBCHTChar);   
      FreeMem(pGBCHTChar);   
      //FreeMem(pGBCHSChar);   
  end;   
  相关解决方案