全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2282
推到 Plurk!
推到 Facebook!

如何為"\u767d"這類的文字解碼

答題得分者是:Mickey
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-13 09:07:21 IP:59.120.xxx.xxx 未訂閱
我想請問一下
我有一些文字資料需要解碼
但不清楚要怎麼解這類的碼
也不太知道這類的碼是什麼碼
不知道是否有大大知道呢???

以下:(小弟只是列舉其中的文字碼)

假了
次使用

我找了下google
大多都是用javascript來做翻譯(解碼)
但小弟不才
不太懂javascript
所以想問問站上的大大們
是否知道以上的碼如何去解?

在google爬到的文:
http://topic.csdn.net/u/20080915/02/dd6fc50f-91af-4575-b0c1-97989a363a2b.html
編輯記錄
老大仔 重新編輯於 2010-01-13 09:08:42, 註解 無‧
老大仔 重新編輯於 2010-01-13 09:09:41, 註解 無‧
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-14 10:19:34 IP:59.124.xxx.xxx 訂閱
[code cpp]
procedure TForm1.Button1Click(Sender: TObject);
var
ss: WideChar;
begin
ss := WideChar($4f00 $7f);
Label1.Caption := ss;
end;
[/code]
會顯示 "使" 這個字
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-02-22 15:13:24 IP:114.38.xxx.xxx 訂閱
你好 :

看起來像是 RichText 的 Unicode 字元....猜的

參考看看

[code delphi]
function RTFUniCode(aTagText: AnsiString): WideChar;
var aAC: PAnsiChar;
begin
Result := #0;
if Length(aTagText) <> 6 then Exit;
if Copy(aTagText, 1, 2) <> '\u' then Exit;
GetMem(aAC, 2);
try
FillChar(aAC^, 2, #0);
HexToBin(PAnsiChar(Copy(aTagText, 5, 2) Copy(aTagText, 3, 2)), aAC, 2);
Result := PWideChar(aAC)^;
finally
FreeMem(aAC, 2);
end;
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
// 次使用
showmessage(RTFUniCode('次'));
end;
[/code]

老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-02-28 14:01:50 IP:59.120.xxx.xxx 未訂閱
To Mickey 大大~
您的Code應該是我要的東西
那我想再請問一下~
是否有反過來的Function呢?

ps: 就是將中文字轉回\u開頭的字
因為我目前要轉回去 不知道要怎麼轉
===================引 用 Mickey 文 章===================
你好 :

看起來像是 RichText 的 Unicode 字元....猜的

參考看看

[code delphi]
function RTFUniCode(aTagText: AnsiString): WideChar;
var aAC: PAnsiChar;
begin
? Result := #0;
? if Length(aTagText) <> 6 then Exit;
? if Copy(aTagText, 1, 2) <> '\u' then Exit;
? GetMem(aAC, 2);
? try
??? FillChar(aAC^, 2, #0);
??? HexToBin(PAnsiChar(Copy(aTagText, 5, 2) Copy(aTagText, 3, 2)), aAC, 2);
??? Result := PWideChar(aAC)^;
? finally
??? FreeMem(aAC, 2);
? end;
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
//? 次使用
? showmessage(RTFUniCode('次'));
end;
[/code]

Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-03-01 13:46:35 IP:61.219.xxx.xxx 訂閱
你好 :

HexToBin / BinToHex....

整理了一下...參考看看...
[code delphi]
function RTFUniCode(aTagText: AnsiString): WideChar;
var aAC: array[0..1] of Char;
begin
Result := #0;
if Length(aTagText) <> 6 then Exit;
if Copy(aTagText, 1, 2) <> '\u' then Exit;
HexToBin(PAnsiChar(Copy(aTagText, 5, 2)), @aAC[0], 1);
HexToBin(PAnsiChar(Copy(aTagText, 3, 2)), @aAC[1], 1);
Result := PWideChar(@aAC)^;
end;

function UniCodeRTF(aWC: WideChar): AnsiString;
var aAC: array[0..1] of AnsiChar;
begin
Result := '';
if aWC <> '' then begin
BinToHex(PAnsiChar(@aWC) 1, @aAC, 1);
Result := '\u' aAC;
BinToHex(PAnsiChar(@aWC), @aAC, 1);
Result := Result aAC;
end;
end;

procedure TForm6.Button1Click(Sender: TObject);
var aWC: WideChar;
begin
aWC := RTFUniCode('次');
showmessage(aWC);
showmessage(UniCodeRTF(aWC));
end;
[/code]

老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-03-02 13:00:31 IP:59.120.xxx.xxx 未訂閱
嗯嗯~謝謝Mickey大大
由於小弟對Encode/Decode這塊還不怎麼了解
困擾了好幾天
真的是很謝謝您的幫忙~^^

===================引 用 Mickey 文 章===================
你好 :

HexToBin / BinToHex....

整理了一下...參考看看...
[code delphi]
function RTFUniCode(aTagText: AnsiString): WideChar;
var aAC: array[0..1] of Char;
begin
? Result := #0;
? if Length(aTagText) <> 6 then Exit;
? if Copy(aTagText, 1, 2) <> '\u' then Exit;
? HexToBin(PAnsiChar(Copy(aTagText, 5, 2)), @aAC[0], 1);
? HexToBin(PAnsiChar(Copy(aTagText, 3, 2)), @aAC[1], 1);
? Result := PWideChar(@aAC)^;
end;

function UniCodeRTF(aWC: WideChar): AnsiString;
var aAC: array[0..1] of AnsiChar;
begin
? Result := '';
? if aWC <> '' then begin
??? BinToHex(PAnsiChar(@aWC) 1, @aAC, 1);
??? Result := '\u' aAC;
??? BinToHex(PAnsiChar(@aWC), @aAC, 1);
??? Result := Result aAC;
? end;
end;

procedure TForm6.Button1Click(Sender: TObject);
var aWC: WideChar;
begin
? aWC := RTFUniCode('次');
? showmessage(aWC);
? showmessage(UniCodeRTF(aWC));
end;
[/code]
?
編輯記錄
老大仔 重新編輯於 2010-03-02 13:01:20, 註解 無‧
系統時間:2024-04-24 21:16:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!