PB12.6INI配置文件乱码问题(ansi|utf8)

PB12.6INI配置文件乱码问题(ansi|utf8)环境:pb12.6问题1(加解密字符串不一致):如果使用加解密,带符号的字符串通过加密算法加密后,存到INI会乱码,实际存的和保存前的字符串不一致,造成解密后的字符串不正确。但不带符号的字符串不会出现这个问题。解决方法:方法一:加密后的字符串,用base64编码后再保存。解密时再转换回来方法二:INI编码用UTF8,注意第一行profilestring等都会乱码,windows不支持。所以UTF8格式文件一定要加个干挠行把第一行跳过。ansi与UTF8区别PB对UTF8支

环境:pb12.6

问题 1(加解密字符串不一致):

如果使用加解密,带符号的字符串通过加密算法加密后,存到INI会乱码,实际存的和保存前的字符串不一致,造成解密后的字符串不正确。但不带符号的字符串不会出现这个问题 。

解决方法:

方法一:加密后的字符串,用base64编码后再保存。解密时再转换回来

方法二:INI编码用UTF8,注意第一行profilestring等都会乱码,windows不支持。所以UTF8格式文件一定要加个干挠行把第一行跳过。

ansi与UTF8区别

PB对UTF8支持不好。虽然特殊字符存UTF8编码不会乱码,但第一行有问题 ,无论是profilestring还是bat批处理,第一行都会乱码。

ansi编码对特殊字符会乱码。

最佳解决方案:

如果有加解密数据,最好用base64编码后再存到ansi编码格式的ini文件中。尽量不要使用UTF8

在windows环境下,用记事本打开任何一个文本文件,另存为utf-8格式后,这样文件就自动被加上了BOM头信息。

在utf-8编码文件中BOM在文件头部,占用三个字节,用来标识该文件属于utf-8编码,现在已经有很多软件识别BOM头,但还是有些不能识别BOM头,比如PHP就不能识别BOM头,这也就是用记事本编辑utf-8编码的PHP文件后,就会报错的原因。

架构君码字不易,如需转载,请注明出处:https://javajgs.com/archives/166266
0
 

发表评论