Delphi 简体 繁体 转换

http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=104986

試看看
這個是豬寶寶從網路上抄來的

檢視純文字版列印?
function Cn2Big(CnStr: string): string;
var
  Len: Integer;
begin
  Len := Length(CnStr);
  SetLength(Result, Len);
  LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(CnStr), Len, PChar(Result), Len);
end;  

function BIG2cn(bigStr: string): string;
var
  Len: Integer;
begin
  Len := Length(bigStr);
  SetLength(Result, Len);
  LCMapString(GetUserDefaultLCID, LCMAP_SIMPLIFIED_CHINESE, PChar(bigStr), Len, PChar(Result), Len);
end;  

procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.Text:=CN2BIG(EDIT1.Text);
end;  

procedure TForm1.Button2Click(Sender: TObject);
begin
edit2.Text:=big2cn(EDIT1.Text);
end;  

===================引 用 [email protected] 文 章===================
 各位新春快樂!

我有一份Unicode編碼的文本文檔,裏面大部分內容為繁體中文,其它為英文字符,需要將裏面的繁體中文內容轉為簡體中文Unicode內容,請問在Delphi XE下應該如何實現?
aftcast
站務副站長

發表:80
回覆:1421
積分:1705
註冊:2002-11-21

發送簡訊給我

 #3     發表時間:2013-02-18 18:29:59   IP:114.32.xxx.xxx 訂閱
hello,

必需要警告豬寶寶上面貼的程式碼僅在以下情形是正確的:
1/ os本身是簡體的,而無論delphi是哪版 (d5以後應該都對)OS 本身是简体,的而无论Delphi是哪个版本,D5以后应该都对。
2/ 若os是我們繁體的,那麼上面的碼僅delphi2009以上的版本才會正確。若2009以前的話,就錯!若OS是我们繁体的,那么上面的代码仅在Delphi2009以上的版本才会正确。若2009以前的话,就错!

若要正統的表達函式的用意,那 Cn2Big 或 Big2Cn的命名不正確。應該把
Cn2Big 改成 chs2cht  (簡字體轉繁字體,必需強調的是…它與編碼轉換無關,也就是說都是在同一個編碼上換字而已)简字体转繁字体,必须强调的是,他与编码转换无关,也就是说是在同一个编码上换字而已。
Big2Cn 改成 cht2chs

因為,在上述所講的 1 的情形下,且delphi是2009前,雖然"看起來"字是對的,但其實轉來轉去都是GBK編碼,非big5。因为,在上述1的情形下,且Delphi是2009前,虽然看起来字是对的,但是其实转来转去都是GBK编码,并非BIG5。
而1的情形下,但delphi是2009以後,那麼情形與情形2是同樣的!
而1的情形下,但Delphi是2009以后,那么情形与情形2是同样的!
而上述2的情形下,其實是因為d2009後的字串是unicode,故LCMapString這個api會呼叫到LCMapStringW這個unicode版,於是變成簡"字型"unicode轉"繁"字型unicode。
而上述2的情形下,其实是因为d2009后的字串是Unicode,故LCMapString这个API会调用到LCMapStringW这个Unicode版,于是变成简字形Unicode转繁字形Unicode。
若真的要把big5轉簡體,或是簡體轉big,那就沒那麼簡單。詳可見我的blog: http://aftcast.pixnet.net/blog/post/22191609  此外,近期我可能會和qcom討論是否可以開個unicode的深入課程,最快3月多。但時候還請大家來聽並指教! :)

若真的要把BIG5转简体,或是简体转BIG5,那就没那么简单。

GBK,BIG5,UNICODE,都是字符编码叫法

简体,繁体,是汉字的不同形式叫法。同一种编码里,存在这1个字的简体和繁体。

时间: 2024-10-11 10:50:31

Delphi 简体 繁体 转换的相关文章

汉字简体繁体转换----Javascript

最近看到有个简体--繁体字互相转换的程序,是用JS实现的,感觉很好玩,所以拿来研究研究.先看看界面如下: 汉字简体繁体转换 上面的所有代码如下: <script> function copy(ob) { var obj=findObj(ob); if (obj) { obj.select();js=obj.createTextRange();js.execCommand("Copy"); } } function paste(ob) { var obj=findObj(ob

SQL简体繁体转换函数代码

--生成码表 if exists (select * from dbo.sysobjects where id = object_id(N'[codetable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [codetable] GOdeclare @j varchar(8000),@f varchar(8000) select @j=' 啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八

C# 文件简繁体转换

C#   文件简繁体转换 简繁体转换: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string strFilePath = @"E:\Demo\Simplifiled_Demo\files\test.txt"; 6 7 if (File.Exists(strFilePath)) 8 { 9 10 string strContent = File.ReadAllText(strFilePath, Encodin

.net简繁体转换

记录下,免得用的时候到处找 方法一 /// <summary> /// 中文字符工具类 /// </summary> public static class ChineseStringUtility {     private const int LOCALE_SYSTEM_DEFAULT = 0x0800;     private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000;     private const int LCMA

.Net、C# 汉字转拼音,简体繁体转换方法

Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持.使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用 下载地址:下载地址 (1) (ChnCharInfo.dll) Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数. [例如:] 1 Microsoft.Intern

网页上简体繁体汉字切换

html文件 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta name="renderer" content="webkit"> 6 <title>js中文简体繁体切换-带缓

js实现简繁体转换

/**以下为JS 可放与一个.js文件**/ //此转换代码转贴自网络,经本人修改特此说明 var Default_isFT = 0;        //默认是否繁体,0-简体,1-繁体 var StranIt_Delay = 50;      //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来) /** * iframe 的集合 */ var iframeArr = new Array(); /** * 点击对象 */ var StranLink_Obj ; /** * cookie 名称

.net 简体转换繁体实例,繁体转换简体 Encode.dll下载

在项目中先引用Encode.dll  下面是下载地址: Encode.dll 1.html页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="简繁转换.aspx.cs" Inherits="ASP.NET_语言基础.简繁转换" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr

简体与繁体转换

using System; using System.Collections.Generic; using Microsoft.VisualBasic; using System.Runtime.InteropServices; using System.Text; namespace Micro.Common { public static class Chinese { internal const int LOCALE_SYSTEM_DEFAULT = 0x0800; internal c