我用Tnt等控件可以显示韩文,但是我需要把韩文进行Unicode编码处理,就是把韩文转换成Unicode编码16进制为:FF1A 这样形式(另外还要处理成Utf-8编)。
比如:‘추가하나요? ’韩文转换成 16进制 这样形式
弄了一个晚上也没有处理,必须要去睡觉了,所以把这个问题帖出来,希望有此经验的朋友帮我,先谢谢了!
解决方案 »
- 请教TCHART如何得到曲线X坐标的值(非鼠标的值,是曲线的值)
- treeView 节点图标更新问题,当 点击节点时,动态更新节点图标文件
- 想跳槽,但如果因面试等频频请假似乎不太好,大家是怎么解决这个问题的?
- 各位大侠: DBGRID可以像DBGRIDEH一样可以显示记录总数吗?
- 谁能告诉我用在delphi用bde怎么连接远程oracle数据库,急用!!!!
- 求教SQL语句(字符连接问题)
- BOF或者EOF错误?急,在线等待。
- 怎么样在程序中用flash控件播放的动画全屏啊!(up有分)
- delphi 能否和 pb做个比较(在数据库方面)
- alec_ma,你好!打包sql server是不是得用sql server本身环境来备份或恢复,能不能用sql语句来操作呢?
- pagecontrol与tabsheet标签上的imageindex显示小问题?高手进,在线等.......
- 这样写为什么不支持汉字的截取
其实这样的“추”的编码我估计是Utf-8编码,如果大家知道如何转换的也请告诉我,谢谢!^_^
HTTPapi;HTTPEncode(s);
function EncodeUTF8(const s:WideString; maxlen: integer): String;
var
i,len:Integer;
cur:Integer;
t: String;
cv: Byte;
begin
Result:='';
len:=Length(s);
i:=1;
while i <= len do
begin
cur := ord(s[i]); //BCD转换
if cur <= $7F then //单字节
begin
t := Char(cur);
end
else if cur <= $7FF then //双字节
begin
t := Char($80 + cur and $3F); cur := cur shr 6;
t := Char($C0 + cur)+ t;
end
else if cur <= $FFFF then //三字节
begin
t := Char($80 + cur and $3F); cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($E0 + cur) + t;
end
else if cur <= $1FFFFF then //四字节
begin
t := Char($80 + cur and $3F); cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($F0 + cur)+ t;
end
else if cur <= $3FFFFFF then //五字节
begin
t := Char($80 + cur and $3F); cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($F8 + cur)+ t;
end
else //if cur <= $7FFFFFFF then //六字节
begin
t := Char($80 + cur and $3F); cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($80 + cur and $3F) + t; cur := cur shr 6;
t := Char($FC + cur)+ t;
end;
if Length(Result) + Length(t) > maxlen then
Break;
Result := Result + t;
inc(i);
end;
end;