當前位置:編程學習大全網 - 遊戲軟體 - 在sqlserver中有沒有函數可以把繁體轉換成簡體的!

在sqlserver中有沒有函數可以把繁體轉換成簡體的!

住前臺轉換吧,SQL Server可沒此麽牛地功能

用外部程序軟件代碼實現寫出來內碼轉換功能,住SQL Server 2000裏封裝成擴展存儲過程。

自己做1個程序軟件代碼,可以隨意將需要轉地表,字段列出來,循環每個字段地值,將它們從繁體轉換到簡體。俺想此樣地程序軟件代碼對樓主來說應該沒什麽問題和疑問吧。

提供幾個函數function供樓主參考:

{內碼轉換}

function Big5ToGB(BIG5Str : String): AnsiString;

{進行big5轉GB內碼}

var

Len: Integer;

pBIG5Char: PChar;

pGBCHSChar: PChar;

pGBCHTChar: PChar;

pUniCodeChar: PWideChar;

begin

//String -> PChar

pBIG5Char := PChar(BIG5Str);

Len := MultiByteToWideChar(950,0,pBIG5Char,-1,nil,0);

GetMem(pUniCodeChar,Len*2);

ZeroMemory(pUniCodeChar,Len*2);

//Big5 -> UniCode

MultiByteToWideChar(950,0,pBIG5Char,-1,pUniCodeChar,Len);

Len := WideCharToMultiByte(936,0,pUniCodeChar,-1,nil,0,nil,nil);

GetMem(pGBCHTChar,Len*2);

GetMem(pGBCHSChar,Len*2);

ZeroMemory(pGBCHTChar,Len*2);

ZeroMemory(pGBCHSChar,Len*2);

//UniCode->GB CHT

WideCharToMultiByte(936,0,pUniCodeChar,-1,pGBCHTChar,Len,nil,nil);

//GB CHT -> GB CHS

LCMapString($804,LCMAP_SIMPLIFIED_CHINESE,pGBCHTChar,-1,pGBCHSChar,Len);

Result := String(pGBCHSChar);

FreeMem(pGBCHTChar);

FreeMem(pGBCHSChar);

FreeMem(pUniCodeChar);

end;

function GBToBig5(GBStr : String): AnsiString;

{進行GB轉BIG5內碼}

var

Len: Integer;

pGBCHTChar: PChar;

pGBCHSChar: PChar;

pUniCodeChar: PWideChar;

pBIG5Char: 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);

GetMem(pUniCodeChar,Len*2);

ZeroMemory(pUniCodeChar,Len*2);

//GB CHT -> UniCode

MultiByteToWideChar(936,0,pGBCHTChar,-1,pUniCodeChar,Len*2);

Len := WideCharToMultiByte(950,0,pUniCodeChar,-1,nil,0,nil,nil);

GetMem(pBIG5Char,Len);

ZeroMemory(pBIG5Char,Len);

//UniCode -> Big5

WideCharToMultiByte(950,0,pUniCodeChar,-1,pBIG5Char,Len,nil,nil);

Result := String(pBIG5Char);

FreeMem(pBIG5Char);

FreeMem(pGBCHTChar);

FreeMem(pUniCodeChar);

end;

function GBKChtToChs(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 GBKChsToCht(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;

最後,我雖然也學了,可是沒有寫這個的牛,有必要聲明,我是倒過來的哦!

  • 上一篇:廣西桂林旅遊必去十大景點
  • 下一篇:電腦裏有壹個壓縮文件管理器WinRAR,這個東西可以刪除嗎?
  • copyright 2024編程學習大全網