• D7项目升级记录


    服务端数据:

    JSON格式然后DES加密之后base64转换

    Delphi Post获取数据后

    由于原有解密程序为D7下使用

    Des(Astr:string):string;

    String-à是ansistring

         

    现在要在xe版本中使用原有的加密方法时直接替换所有string为ansistring,chr函数为ansichar。

    Des(Astr:Ansistring):Ansistring;

    解密出字符串用Utf8toAnsi转换后中文奇数个时出现乱码。

    Eg:

    {"book_isbn":"9787530125434","book_issn":"","book_cn":"","book_barcode":"","book_name":"名人?专著 ","book_keyword":"","book_author":" (?罗曼·罗兰原著 ; 郭琳改写","book_publishing_house":"北京 : 北京少年儿童出版?,"book_edition":"3?,"book_series":"","book_publish_date":" 2010","book_publish_cycle":"","book_binding":"","book_title_page":"","book_text_page":"","book_price":"0.0000","book_type_no":"K835.165.76=41","book_types":"贝多?(Beethoven, ludwing Van 1770-1827) -- 传记 -- 缩写","book_size":"","book_words":"","book_sheet":"","book_pages":"147?: 彩图 ; 24cm","book_object":"贝多?(Beethoven, ludwing Van 1770-1827) -- 传记 -- 缩写","book_abstract":""}

    后来输入二进制发现

    输入字符串在乱码的位置都出现了3F 怀疑是返回结果为ansistring时转换时出错。

    随添加数据labytes:Tbytes;直接把转换结果存入数据后。用Tencoding.UTF8.GetString返回,结果显示正常。

    暂时这样处理。

       

    Indy9 tcp服务与indy10客户端通信

    需要注意发送的数据需要编码为Ansi 接收的数据也要转码为Ansi

    IOHandler.Write(Astr,indytextEncodeing(Tencoding.ANSI));//发送

       

    IOHandler.InputBuffer.Size>0 //接收

    IOHandler.InputBufferAsString(indyTextEncoding(Tencoding.ANSI))

     

    RES资源文件中的字符串

     

    资源文件是原来D7下生成的,因此其中字符串的编码也是ANSI

    读出到buffer时buffer类型需要是byte 或者ansichar的数据

  • 相关阅读:
    Django(25)WSGIRequest对象
    Django(24)永久重定向和临时重定向
    Django(23)Django限制请求装饰器
    Django(22)Django执行SQL语句
    Django(21)migrate报错的解决方案
    Django(20)ORM模型迁移命令
    Django(19)QuerySet API
    Django(18)聚合函数
    Django(17)orm查询操作
    数据结构-用队列实现栈
  • 原文地址:https://www.cnblogs.com/jspdelphi/p/9543644.html
Copyright © 2020-2023  润新知