|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2006/9/16 11:37:11 |
标题: |
|
加入我的收藏 |
楼主: |
比如:汉这个字的ascii可以写成"BA BA" 用unicode则是"6C 49" .我想问的的是如何在"BA BA" 和 "6C 49" 之间转换?? 最好是转换算法.
----------------------------------------------
- |
作者: |
|
2006/9/16 13:31:41 |
1楼: |
procedure TForm1.Button2Click(Sender: TObject); var s: string; ws: WideString; p, q: PByte; begin s := '汉'; ws := s; p := PByte(@s[1]); q := p; Inc(q); Caption := IntToHex(q^, 2) + ' ' + IntToHex(p^, 2); p := PByte(@ws[1]); q := p; Inc(q); Caption := Caption + '###' + IntToHex(q^, 2) + ' ' + IntToHex(p^, 2); end;
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
|
2006/9/16 13:46:06 |
2楼: |
我想问的是 BA BA<==>6C 49 如何转换? 他们之间有什么算法关系?
----------------------------------------------
-
|
作者: |
|
2006/9/16 14:01:04 |
3楼: |
好像没有什么算法可以确定,只能一对一吧?!
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
|
2006/9/16 14:44:12 |
4楼: |
是这样的,我用MIDletPascal写个JAVA程序,里面需要把GB3212转换成UTF8. 可是MIDletPascal比起DELPHI来函数少的可怜,所以才想来求助.不知道能不能用码表对应的方法??
----------------------------------------------
-
|
作者: |
|
2006/9/16 14:48:49 |
5楼: |
function gb2utf8($gb){ if(!trim($gb)) return $gb; $filename="gb2312.txt"; $tmp=file($filename); $codetable=array(); while(list($key,$value)=each($tmp)) $codetable[hexdec(substr($value,0,6))]=substr($value,7,6);
$utf8=""; while($gb) { if (ord(substr($gb,0,1))>127) { $this=substr($gb,0,2); $gb=substr($gb,2,strlen($gb)-2); $utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080])); }else{ $this=substr($gb,0,1); $gb=substr($gb,1,strlen($gb)-1); $utf8.=u2utf8($this); } } return $utf8; }
========== 从网上找来个.哪位帮忙翻译成Pascal
----------------------------------------------
-
|
作者: |
|
2006/9/16 15:17:12 |
6楼: |
如果可以的话,就调用API实现,参考一下D6/7中的AnsiToUtf8函数源码。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
|