c++服务器回传给网页的中文是乱码

项目场景:

在做c++服务器的时候,回发给网页的中文是乱码,明明在响应消息报头指定了text/plain; charset=utf-8。

更新,就是我错了。我指定的消息报头没有成功回发,导致乱码,而在html中增加<meta charset=\ “UTF-8”>恰好弥补了编码这一点。
经过实验,这两者有一个就可以保证中文显示正常,是或的关系。
1、响应消息报头指定了text/plain; charset=utf-8
2、在html中增加<meta charset=\ “UTF-8”>


问题描述

服务器回传给网页的html代码里的中文是正常的,
在这里插入图片描述

但显示出来就是乱码
在这里插入图片描述

原因分析:

总的来说就是服务器的编码方式和浏览器的编码方式不一致,在浏览器改变编码方式也可以解决问题,但我的谷歌浏览器没找到设置编码。主要还是想寻求一种通用的方法。百思不得其解,搜索引擎上也都是关于java的,有现成的函数很方便的解决,关于c++的极少。


解决方案:

不仅仅在响应消息报头指定编码方式,还要在html页面指定内容的编码方式。
可以在响应消息报头指定编码方式,也可以在html页面指定内容的编码方式。
添加如下语句,设置html的编码方式:
在这里插入图片描述

延申一下

在做的时候可能还会遇到这样的问题,url是中文怎么办?
URL 中的汉字默认是存为 Unicode 码,就是说浏览器发送给服务器的url中文是以Unicode 码存在的,其实就是浏览器地址栏输入的中文,看起来是中文,但按回车发起来就是unicode码了。
在这里插入图片描述
服务器接到之后,要先进行解码操作,将其转换为正常中文,才能完成索引。
如果需要将中文路径作为url,比如html中href=的指定,那么还需要将中文转换为Unicode 码进行返回。
因此,在访问带有汉字的文件时,应该在服务器回发数据给浏览器时进行"编码"操作,在浏览器请求资源目录的汉字文件时进行“解码”操作。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值