TextFile保存什么ASCII字符才是安全的?

cfvmario 2015-03-23 09:09:33
rt
之前使用TextFile保存一些数据,对字符的ASCII码做了变换,再用chr函数写进去
但是有时发生了个别字符被破坏的问题。。前几天发生了一次问题,被破坏了一个字符,用UltraEdit一看,是一个?字符被破坏,变成了ASCII码的?字符——两个字符都显示成?但内码不一样
前两天又匪夷所思的出现了连续3个字符被破坏的乱七八糟(这3个字符是我用来保存一个数字的,数值乱了,一反向转换发现已经不是单个字符破坏了),猜想是不是什么控制ASCII字符被写进去了。。我写这里的时候当时没考虑这个可打印字符的问题,就是0-255的ASCII码全用了,所以被破坏也可以理解吧。。
如果只用ASCII码32-127应该是绝对安全的吧,但是我有另一处应用已经设计成使用40-167的范围,已经很难修改。128-167这个范围如果不用记事本之类的东西打开修改,会出问题吗?那个?被破坏是这里出了问题,但我记得好像当时用记事本打开修改过,可能记事本不认那个ASCII码靠后的?,自动转成可打印字符?了。。如果保证只用UltraEdit打开,是不是不会出问题?
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
武稀松 2015-03-23
  • 打赏
  • 举报
回复
有些ASCII不是文本,不支持.比如遇到#0,读的时候就会认为后面结束了. 可以把你要处理的做Base64转换,在进行读写
bdmh 2015-03-23
  • 打赏
  • 举报
回复
你自己加个密就好了,方法网上很多
lyhoo163 2015-03-23
  • 打赏
  • 举报
回复
可以自己写一个转换表 1、32-127不变 2、128-167,转换为21-127的字符组合。 通过转换,再保存。读取后,再转换回来。
cfvmario 2015-03-23
  • 打赏
  • 举报
回复
引用 2 楼 wr960204 的回复:
有些ASCII不是文本,不支持.比如遇到#0,读的时候就会认为后面结束了. 可以把你要处理的做Base64转换,在进行读写
可以明确说以下不支持的ASCII范围吗?
cfvmario 2015-03-23
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
你自己加个密就好了,方法网上很多
问题就是,是否加密以后一定要在32-127的范围才安全?128-167安全吗? 毕竟修改加密算法是很麻烦的事,那意味着老版本全部失效,必须强制更新版本。 以前保存数字的时候用0-255肯定不行,因为那个数字比较重要,现在修改了算法,保证只用32-95范围的ascii字符这总不该出事了

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧