html中汉字乱码怎么解决,如何解决前端页面中文乱码

场景说明

假设需要劫持http响应并在html页面中注入一段js代码后再传回浏览器,实现在浏览器出现一个弹框消息提醒。

 

由于原始html页面编码格式存在UTF-8、GBK等多种编码格式,如果注入的js包含中文消息的话,那么在UTF-8或GBK编码的页面就会有一个出现乱码。有没有办法做到不管是针对GBK、UTF-8编码的页面都能做到正常显示而不会出现乱码哪?

产生乱码的原因

首先来分析一下产生乱码的原因,我们在浏览器看到的信息都是通过图形学手段在显示器上呈现出来的,而实际保存在计算机硬件上的都是0和1(因为计算机实现是基于二进制),那么计算机要显示、传递信息就需要依靠一套规则把一串串的0和1识别为正确的字符,这就是编码。

例如01000001在ASCII编码规则下对应字母A。相同的0/1串,不同的编码解析出的字符一般是不同的,因此如果html页面按照UTF-8的编码解析正常,那么按照GBK的编码解析就会是乱码了。根据上面的示意图,假设注入的js代码为utf-8编码格式,而原始html编码格式也为UTF-8编码格式,那么最终注入这部分中的中文就能正常显示,但是如果原始html为GBK编码,那注入的这部分js代码的中文就会显示乱码。

解决办法

有一种unicode统一编码字符集,目标是把所有文字、字符统一编码,也就是一串0/1组合在unicode字符集下对应的字符是唯一的,不会存在歧义。而js是支持解析unicode字符的,那么就可以在注入js中把要显示的消息统一转换为unicode编码,浏览器端去解析这个unicode编码,这样不管原始html是UTF-8还是GBK,都能正常显示中文。

原始注入js代码关于中文字符的部分

// utf-8编码格式
let message = "中文";

解决乱码的注入js代码关于中文字符的部分

// utf-8编码格式
let message = "\\u4e2d\\u6587";  // 这个编码对应上面的message"中文"

注意:

  1. 注入的js代码仍然是utf-8编码格式,只是消息内容转换为unicode编码的形式;
  2. unicode中0x4e2d表示的0/1串对应汉字”中”,0x6587对应的0/1串对应汉字”文”;
  3. message其实也不是真正的unicode编码,它只是普通的字符串,只是使用了unicode对应的码点(也就是二进制对应的数值),因为可以利用这个码点在浏览器中恢复出正确的字符,事实上unicode字符集并没有规定具体的编码格式。

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/459771.html

(0)

相关推荐

  • 可以免费做网站推广的平台,可以免费做网站推广的平台有哪些

    以下是一篇关于“可以免费做网站推广的平台”的文章: 一、社交媒体平台 社交媒体平台可能是大家最熟悉的免费网站推广渠道之一。像微信、微博这样的平台,拥有庞大的用户群体。 微博则更像是一个信息传播的广场。我们可以注册微博账号,发布简短而有吸引力的内容,同时带上网站的链接。微博的话题功能也很强大,我们可以参与一些与网站相关的话题讨论,通过话题的热度来吸引更多的用户…

    2025-08-27
  • fluent下载,fluent下载安装

    《Fluent下载:从入门到精通》 一、Fluent是什么? Fluent可能是一款在流体力学领域广泛应用的软件。它好像是专门用于模拟和分析各种流体流动现象的工具,比如水流、气流等。我觉得它就像是一个超级强大的“流体魔术师”,能够帮助工程师和研究人员更好地理解和预测流体的行为。 在实际应用中,Fluent可以用于设计飞机的机翼、汽车的外形,以优化空气动力学性…

    2025-09-15
  • 公众号如何认证企业认证 如何认证公众号企业认证

    在当今社交媒体时代,公众号已成为企业展示品牌形象、宣传产品、与消费者互动的重要平台。对于企业而言,有一个认证过的公众号可以提高品牌的信誉和影响力,吸引更多的关注和粉丝。那么,公众号如何认证企业认证?如何认证公众号企业认证呢?本文将从四个方面对这个话题做详细的阐述。 一、公众号认证的概述 公众号认证是腾讯微信公司为了保证用户的信息安全和防范恶意注册行为所设立的…

    2023-05-19
  • 声音克隆技术 成本多少?详细预算

    声音克隆技术 2026 nian shi ce shu ju

    2026-03-23
  • lpctstr,LPCTSTR赋值

    以下是一篇关于“lpctstr”的文章: 一、初识lpctstr 我第一次接触到“lpctstr”这个概念的时候,感觉它好像是一个比较神秘的存在。也许在编程的世界里,它有着特定的用途和意义,但对于我这个刚开始涉足这个领域的人来说,确实有些摸不着头脑。我觉得它就像是编程领域中的一个小谜团,让我忍不住想要去揭开它的面纱。 我开始在各种编程资料和文档中寻找关于“l…

    2025-10-05
  • 标记宏,快速标记宏

    以下是一篇关于“标记宏”的文章: 一、什么是标记宏? 标记宏可能是一种在编程或特定领域中用于简化和自动化某些操作的工具或技术。我觉得它就像是在编程世界中的小助手,能够快速地完成一些重复性的任务或者标记特定的元素。 比如说,在文档处理中,也许可以通过标记宏来快速设置特定格式的段落,或者在代码编写中,标记宏可能用于标记特定的函数或代码块,以便在后续的操作中更容易…

    2025-10-03
  • 种植业什么最赚钱?种植业赚钱方法详解

    首先聊种植业什么最赚钱的问题。 我常常聊的,做农业,选对品种很重要。但品种不是万能的,你得会种。 我的观点从 10 年前到现在还是没有改变:种植只是基础,关键是你怎么卖。 我以前聊过的几个坑 第 1 种,跟风种植。 表弟看别人种葡萄赚钱,也跟着种。结果种出来后,价格暴跌,亏了 5 万块。找专家,专家说”市场饱和”,直接不管他。 正确做…

    2026-04-27
  • 网络推广应该如何做 网络推广策略与方法

    网络推广是企业在营销上都需要重视和采取的一项策略。毫无疑问,现代社会是信息化时代,互联网成为人们获取信息和进行交流的重要平台,因此,对于企业主而言,如何做好网络推广已经成为了一个重要的问题。 本文将从四个方面详细阐述网络推广应该如何做:一、建立网站优化策略;二、制定社交媒体营销计划;三、通过网络广告获得曝光;四、运用优质的内容推广网络推广。 一、建立网站优化…

    2023-05-23
  • 解析域名多久生效(解析域名生效时间解释,最长需等24小时)

    解析域名生效时间是指将域名指向相应IP地址后,需要一定时间才能生效。这个时间最长需等待24小时,这也是许多人在配置域名时遇到的一个问题。本文将从四个方面,即DNS缓存、DNS服务器、网络传输和本地缓存,对解析域名生效时间做详细的解释,以帮助读者更好地理解这个问题。 一、DNS缓存 DNS缓存是一种高速缓存(Memory Cache),存储着域名解析结果。当访…

    2023-05-14
  • 在本地做改版如何替换旧网站会影响百度收录吗(本地改版如何替换旧网站?对百度收录会有影响吗?)

    本文将介绍本地改版如何替换旧网站以及对百度收录是否会产生影响的问题。本文将从四个方面进行详细的阐述,包括为什么需要进行本地改版、如何实施本地改版、注意事项以及对百度收录的影响。 一、为什么需要进行本地改版 随着互联网技术的不断发展,网站的生命周期也越来越短,而且随着时间的推移,网站的信息和技术都会逐渐变得过时。因此,为了保持网站的更新和发展,必须进行本地改版…

    2023-05-12
  • 免费建论坛有哪些(如何免费建立自己的专业论坛?)

    随着社交媒体和互联网的发展,越来越多的人开始构建自己的专业论坛来交流和分享他们的知识和经验。本文将详细介绍如何免费建立一个专业论坛,并提供一些有帮助的建议,以便初学者们可以快速建立自己的论坛。文章内容分为四个方面:寻找合适的主机;选择合适的论坛平台;定制您的论坛;鼓励用户参与。通过阅读本文,您将了解如何以最经济和最高效的方式建立自己的专业论坛。 一、寻找合适…

    2023-05-09
  • 茅台酒回收店哪里有,哪里有茅台酒回收公司

    北京的冬天寒冷而寂寥,但这个冬天,却有一家店面成为了京城人热议的话题。那是一家神秘的店铺,据说这里可以回收北京精品茅台酒。望着店铺门前的招牌,上面写着“宝地芳醇”,没有一丝的商标,也没有任何的联系方式。人们对这家店的好奇心开始慢慢蔓延开来。 这家店的新闻很快传遍了整个城市,起初是谣言,后来却被证实是真实存在的。尽管有人对这家店抱有怀疑,但还是有许多人对此展开…

    2023-09-06