找回密码
 立即注册
收起左侧

上传服务器中的日志文件中,汉字显示为“???”。

6
回复
7516
查看
[复制链接]
累计签到:71 天
连续签到:1 天
来源: 2017-9-8 13:24:46 显示全部楼层 |阅读模式
5Qter豆
Qt5 + VS2013.

本地日志文件中,汉字显示正常,但是经过加密后,上传到服务器,服务器采用UTF-8编码格式,导致解密后的文件中,汉字为 ? ,英文显示正常。


main.cpp中。

QTextCodec *codec = QTextCodec::codecForName("UTF-8");

QTextCodec::setCodecForLocale(codec);


应该是本地的编码不是UTF-8,但是我也不知道具体是什么,

现在不是很理解,我是应该在加密的时候,将文件内容转为UTF-8编码格式再进行加密,还是应该使用别的办法。希望大神给指一条路,新手求解。


我再加密前设置了一下,还是不行。

QTextCodec *codec = QTextCodec::codecForName("utf-8");


            QByteArray tem = codec->fromUnicode(file.readAll());




最佳答案

查看完整内容

加密后utf8 ??? 一般加密算法得到的不是二进制就是普通ascii,可能是算法问题,建议换通用的算法
回复

使用道具 举报

尚未签到

2017-9-8 13:24:47 显示全部楼层
加密后utf8 ??? 一般加密算法得到的不是二进制就是普通ascii,可能是算法问题,建议换通用的算法
回复

使用道具 举报

尚未签到

2017-9-10 14:33:18 显示全部楼层
上传之前将原始字符输出一下,看看编码对不对
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2017-9-11 09:04:58 显示全部楼层
用 Notepad++ 打开日志文件,右下角可以看到该文件是什么编码格式,可能在你加密或者读取时候,编码已经错了!如果不是 UTF-8 尝试直接修改编码,(百度一下),如果还是失败,(存在失败的可能),尝试将日志用 UTF-8 保存!
回复

使用道具 举报

累计签到:71 天
连续签到:1 天
2017-9-11 17:39:41 显示全部楼层
Joey_Chan 发表于 2017-9-10 14:33
上传之前将原始字符输出一下,看看编码对不对

感谢管理员大人的回复,您是指查看加密后的文本的编码格式是不是UTF-8吗?
回复

使用道具 举报

累计签到:71 天
连续签到:1 天
2017-9-11 17:41:29 显示全部楼层
Since 发表于 2017-9-11 09:04
用 Notepad++ 打开日志文件,右下角可以看到该文件是什么编码格式,可能在你加密或者读取时候,编码已经错 ...

感谢前辈的回复。我试一下。
回复

使用道具 举报

累计签到:71 天
连续签到:1 天
2017-9-12 15:14:44 显示全部楼层
Joey_Chan 发表于 2017-9-10 14:33
上传之前将原始字符输出一下,看看编码对不对

看了一下,加密后的文件是UTF-8格式的。
然后我上传服务器
QByteArray conment = file.readAll();
file.close();
HttpPostThread::Instance()->Send_Http_uploadlog(conment);
这样不可以,是哪里出现的问题呢?
目前服务器上面解密后,只有中间的一个 汉字 显示,其他的都是 ????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了