我正在使用Delphi 7构建一个项目,其中我使用Axolot的XLSReadWriteII5组件。现在我正在尝试创建一个xls工作表,我试图在其中复制特定sql表的数据。 具体来说,我有一个表名“CredentialsT”,其中我有以下记录:
A/A ServerURL UserName Password Numbers
1 11111 DFGDFSG 4emÜø}ý 275,12073,1780
2 adsf asdf 7g2ÌkßJ 275,12073,1780
3 sdfasdf afsadfasdf 4e8@Â:Ïœ 275,12073,1780
4 asdfdsafasd gggggggg 0‰n>ª3ý 19504,32539,275
“密码”列中的数据已加密,这就是为什么它的内容似乎 - 不知何故 - 没有逻辑。 “Numbers列”也是字符串类型。
现在,在创建XLSReadWrite对象之后,我读取了上面的记录,然后将它们写入我使用XLSReadWrite对象创建的xls文件中。但是,即使通过读取或写入过程没有引发错误或警告,当我尝试打开xls文件时 - 使用excel - 它会产生4个关于文件机密性的警告 - 您只需要单击'ok /是'按钮,并出现以下致命错误消息:
“已停产的部门:部门/xl/sharedStrings.xml XML错误。(字符串)非法的xml字符。第83行,第5列。 已停用的条目:来自/xl/worksheets/sheet1.xml“
部分的单元信息单击“ok / yes”按钮,xls文件将打开,但仅保留数字数据(A / A列)。其他所有内容都丢失了,甚至是列标题(A / A,ServerURL等等)。另一方面,如果我从我的服务器复制并在我的xls文件中写入除“密码”之外的所有列,那么一切都像魅力一样。所以,我猜整个问题都与编码有关。这是因为Delphi-7不使用UTF8编码而是使用ANSI编码。
我试图找出XLSReadWriteII5组件是否有任何“编码”属性,但我失败了。
那么有人能为我提供解决此问题的方法吗?
答案 0 :(得分:0)
将加密数据编码为有效的sting格式。
加密数据是8位字节,并非所有8位字节都是UTF-8字符。通常,如果加密数据需要是UTF-8字符,则将其编码为Base64或十六进制字符串。