如何為"\u767d"這類的文字解碼 |
答題得分者是:Mickey
|
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
我想請問一下
我有一些文字資料需要解碼 但不清楚要怎麼解這類的碼 也不太知道這類的碼是什麼碼 不知道是否有大大知道呢??? 以下:(小弟只是列舉其中的文字碼) 白 假了 次使用 我找了下google 大多都是用javascript來做翻譯(解碼) 但小弟不才 不太懂javascript 所以想問問站上的大大們 是否知道以上的碼如何去解? 在google爬到的文: http://topic.csdn.net/u/20080915/02/dd6fc50f-91af-4575-b0c1-97989a363a2b.html |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
你好 :
看起來像是 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 發送簡訊給我 |
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 發送簡訊給我 |
你好 :
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 發送簡訊給我 |
嗯嗯~謝謝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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |