delphi字符unicode编码后与webservice通过json通讯
来源:互联网 发布:java数据库开发培训 编辑:程序博客网 时间:2024/06/16 16:25
项目中遇到需求需要把delphi里的字符串post到php的webservice接口,
delphi写json字符串时遇到双引号等符号时串出来的json传到php端会解析失败,经分析后发现需要对特殊字符进行unicode编码,
不多说,上干货
function TForm1.GetUniCode(AChar: String): String;
var
I: Integer;
WS: WideString;
Code: Word;
Codes: String;
begin
WS := AChar;
Codes := '00';
for I := 1 to Length(WS) do
begin
Move(WS[I], Code, SizeOf(Code));
Codes := Codes + IntToHex(Code, 2);
end;
Result := '\u' + Codes;
end;
function TForm1.GetEnCodeStr(AStr: String): String;
var
sResult, AChar: string;
lstChar: TStringlist;
i: Integer;
begin
sResult := AStr;
lstChar := TStringlist.Create;
lstChar.Add('\');
lstChar.Add('"');
lstChar.Add('''');
lstChar.Add('&');
for i := 0 to lstChar.Count -1 do
begin
sResult := AnsiReplaceStr(sResult ,lstChar[i], GetUniCode(lstChar[i]));
end;
// sResult := HTTPEncode(UTF8Encode(AStr));
// sResult := AnsiReplaceStr(sResult ,'\', '\u005c');
// sResult := AnsiReplaceStr(sResult ,'"', '\u0022');
// sResult := AnsiReplaceStr(sResult ,'''', '\u0027');
result := sResult;
lstChar.Free;
end;
其中GetUniCode是对字符进行转义成unicode,对特殊字符这样处理即可
delphi写json字符串时遇到双引号等符号时串出来的json传到php端会解析失败,经分析后发现需要对特殊字符进行unicode编码,
不多说,上干货
function TForm1.GetUniCode(AChar: String): String;
var
I: Integer;
WS: WideString;
Code: Word;
Codes: String;
begin
WS := AChar;
Codes := '00';
for I := 1 to Length(WS) do
begin
Move(WS[I], Code, SizeOf(Code));
Codes := Codes + IntToHex(Code, 2);
end;
Result := '\u' + Codes;
end;
function TForm1.GetEnCodeStr(AStr: String): String;
var
sResult, AChar: string;
lstChar: TStringlist;
i: Integer;
begin
sResult := AStr;
lstChar := TStringlist.Create;
lstChar.Add('\');
lstChar.Add('"');
lstChar.Add('''');
lstChar.Add('&');
for i := 0 to lstChar.Count -1 do
begin
sResult := AnsiReplaceStr(sResult ,lstChar[i], GetUniCode(lstChar[i]));
end;
// sResult := HTTPEncode(UTF8Encode(AStr));
// sResult := AnsiReplaceStr(sResult ,'\', '\u005c');
// sResult := AnsiReplaceStr(sResult ,'"', '\u0022');
// sResult := AnsiReplaceStr(sResult ,'''', '\u0027');
result := sResult;
lstChar.Free;
end;
其中GetUniCode是对字符进行转义成unicode,对特殊字符这样处理即可
0 0
- delphi字符unicode编码后与webservice通过json通讯
- Unicode 与 字符编码
- 字符与UNICODE编码
- 通过JSON与服务器通讯
- 字符编码(unicode编码)
- Unicode编码与字符对应表程序
- Unicode编码与字符对应表程序
- 文本文件与二进制文件、Unicode字符编码
- 字符编码与unicode那些事
- flex通过socket json与后台通讯
- Delphi操作Unicode字符
- Delphi操作Unicode字符
- C#中将UNICODE编码后的字符转换为汉字
- Delphi与字符编码(实战篇)
- Unicode字符编码规范
- Unicode字符编码规范
- Unicode字符编码规范
- Unicode字符编码规范
- Eclipse 不能正确识别Android工程
- vb.net Linq实战
- python数据结构之图深度优先和广度优先
- 目标检测的图像特征提取之(二)LBP特征
- android: 调用摄像头拍照
- delphi字符unicode编码后与webservice通过json通讯
- PostgreSQL 入门
- 750B New Year and North Pole
- IP网络安全可信技术西电捷通TISec技术 让TCP/IP协议更安全
- 机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size
- Spring MVC 4.0 + Velocity Tools 2.0遇到的问题
- spring mvc集锦
- 自定义PHP数组类的实现
- Dijkstra