关于UTF-8编码的问题
我现在做一个客户端软件,用户保存的数据在本地,我定期把数据导出为XML文件,由于保密要求,必须经过AES加密——>base64编码——>压缩成zip文件——>再上传到服务器端,服务器有java程序进行解压解密。
现在问题是我用的2007,默认是gb2312编码,经过编码后上传到服务器java端解密失败,后来发现纯英文字母没有问题,于是考虑到java默认是UTF8编码格式,就用UTF8Encode转换了一下,但是转换后纯汉字或者纯英文可以,如果英文加汉字就又解密失败。
请大家支个招,这个问题是客户端的问题还是java端的问题?
谢谢,一定多加分。
[解决办法]
我没有试过,感觉问题出在java服务端,java端好象是通过头字符去判断是utf编码还是字符编码(纯英文字符串的utf8编码和原串是相同的),然后处理,我感觉应该强制服务器把接收的文件当utf处理(应该有相关函数)
还有一个笨方法,在字符串前加个汉字,在java接收后删除这个汉字,呵呵
[解决办法]
顶一下。
java处理中文有点恶心,都采用utf8编码问题不大。采用gb编码爱出问题。
你可以先自己再做个“简易服务器”端,只是验证你说的那些流程
必须经过AES加密——>base64编码——>压缩成zip文件——>再上传到服务器端
先检查自己的有没有问题。再看其它的。
[解决办法]
不要用Delphi自带的编码函数,直接调用Windows API:MultiByteToWideChar和WideCharToMultiByte.
[解决办法]
我也觉得应该用MultiByteToWideChar和WideCharToMultiByte这两个试试。
[解决办法]
用AnsiToUTF8()试试