zoukankan      html  css  js  c++  java
  • 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的数据

  • 相关阅读:
    10年学到的编程经验总结
    测试框架 Mocha 实例教程
    在 Flutter 中玩转 Objective-C Block
    使用Gulp压缩混淆JS的相关配置
    Gulp前端自动化构建工具
    常用的十大 NodeJS 框架
    如何使用Vue中的嵌套插槽(包括作用域插槽)
    通过Python代码操作MySQL:
    使用python发邮件:
    jquery:
  • 原文地址:https://www.cnblogs.com/jspdelphi/p/9543644.html
Copyright © 2011-2022 走看看