解决方法:

1、确保我们的js文件保存格式是UTF-8。(可以通过记事本打开,然后另存为来查看目标js的编码格式)

2、在js文件中增加编码说明meta数据,让浏览器知道使用什么编码来解释网页。

res.write('<head><meta charset="utf-8"/></head>');

补充解释:

《Node.js开发指南》节选:
        Node.js 不支持完整的Unicode,很多字符无法用string 表示。公平地说这不是Node.js 的缺陷,而是JavaScript 标准的问题。目前JavaScript 支持的字符集还是双字节的UCS2,即用两个字节来表示一个Unicode 字符,这样能表示的字符数量是65536。显然,仅仅是汉字就不止这个数目,很多生僻汉字,以及一些较为罕见语言的文字都无法表示。这其实是一个历史遗留问题,像2000 年问题(俗称千年虫)一样,都起源于当时人们的主观判断。最早的Unicode 设计者认为65536个字符足以囊括全世界所有的文字了,因此那个时候盲目兼容Unicode 的系统或平台(如Windows、Java 和JavaScript)在后来都遇到了问题。
        Unicode 随后意识到2个字节是不够的,因此推出了UCS4,即用4 个字节来表示一个Unicode 字符。很多原先用定长编码的UCS2 的系统都升级为了变长编码的UTF-16,因为只有它向下兼容UCS2。UTF-16 对UCS2 以内的字符采用定长的双字节编码,而对它以外的部分使用多字节的变长编码。这种方式的好处是在绝大多数情况下它都是定长的编码,有利于提高运算效率,而且兼容了UCS2,但缺点是它本质还是变长编码,程序中处理多少有些不便。
        许多号称支持UTF-16 的平台仍然只支持它的子集UCS2,而不支持它的变长编码部分。相比之下,UTF-8 完全是变长编码,有利于传输,而UTF-32 或UCS4 则是4 字节的定长编码,有利于计算。
        当下的JavaScript 内部支持的仍是定长的UCS2 而不是变长的UTF-16,因此对于处理UCS4 的字符它无能为力。所有的JavaScript 引擎都被迫保留了这个缺陷,包括V8 在内,因此你无法使用Node.js 处理罕见的字符。想用Node.js 实现一个多语言的字典工具?还是算了吧,除非你放弃使用string 数据类型,把所有的字符当作二进制的Buffer 数据来处理。

转载于:https://www.cnblogs.com/luzhanshi/p/10721817.html

九、Node.js中文乱码问题相关推荐

  1. 【特别推荐】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  2. 【防衰老教程】记录一次IDEA,开发JavaWeb项目时JS中文乱码排错

    2019独角兽企业重金招聘Python工程师标准>>> 最近,在本地启动公司另外一个项目时,发现项目JS文件居然报错一大片,这个不能容忍啊,所以立马着手百起来(以下为坊间流传方案,虽 ...

  3. eclipse中js中文乱码问题的解决办法

    eclipse中js中文乱码问题的解决办法 参考文章: (1)eclipse中js中文乱码问题的解决办法 (2)https://www.cnblogs.com/yanggb/p/11719126.ht ...

  4. Node.js 中文网站,站长被骂惨了

    大家好,我是校长. 最近有一件事, Node.js 中文文档网站收费一件事闹得沸沸扬扬,站长被骂惨了. 大概是什么个情况呢?Node.js 中文网站是由一个开发者个人维护的网站,主要就是及时同步更新 ...

  5. webstorm js中文乱码

    WebStorm 创建的 js文件默认保存 GBK 格式,因此所有中文都变成乱码,把保存有中文的js文件文件格式改为 UTF-8 之后就能正常显示.     file|Settings|Editor| ...

  6. 用记事本解决js中文乱码问题

    今天要实现一个效果,即在用户提交表单采用AJAX技术检测用户名是否存在,本身程序实现过程很简单. 于是本人就拷贝了网上的一部分JavaScript代码,程序是正常运行了,谁知打开页面的提示信息竟然全是 ...

  7. 记录一次IDEA开发JavaWeb项目时JS中文乱码排错方法

    大家经常遇到乱码问题,我一般习惯性的把编码问题归结为两种: 编码层面的乱码:指的是那些需要修改项目内的代码或配置来解决的乱码问题,比如有的时候从数据库获取的数据是乱码.发送ajax请求时,获取到的数据 ...

  8. 解决引入JS中文乱码问题

    前几天做项目时遇到一个问题: 1.引入外部js的时候页面显示乱码.但是所有的文件都是使用UTF-8编码的. 2.采用"嵌入式"使用js时,就没有乱码了. 解决方法: 只要在web. ...

  9. idea打开java文件中文乱码_idea运行java项目js中文乱码如何解决

    大家经常遇到乱码问题,我一般习惯性的把编码问题归结为两种: 编码层面的乱码:指的是那些需要修改项目内的代码或配置来解决的乱码问题,比如有的时候从数据库获取的数据是乱码.发送ajax请求时,获取到的数据 ...

最新文章

  1. Java项目:人事管理系统(java+javaweb+jdbc)
  2. shiro框架的使用及扩展
  3. 爱尔兰 APC 微生物组研究所—菌群研究的全球领航者之一
  4. Appfuse:记录操作日志
  5. STL源代码分析(ch 1)组态1
  6. 激光扫描仪的扫描方式
  7. scikit-learn点滴
  8. codeforces82 D. Two out of Three(记忆化搜索)
  9. 基于Java+SpringMvc+vue+element实现疫苗接种管理平台
  10. java使用nio读写文件
  11. httpclient 连接池工具类_C# 中 HttpClient 的简单使用
  12. virtuebox 安装VBoxGuestAdditions,ubuntu下设置文件共享
  13. Origin画图技巧之柱状图优化
  14. 如何通俗理解圣维南原理?
  15. 牛客 数据库SQL实战 将titles_test表名修改为titles_2017
  16. 震惊了,王者荣耀项目组发了60个月的年终奖!!!妈妈,我要做游戏
  17. 图像匹配—NCC算法,即归一化互相关匹配
  18. Smartbi自定义生成报表-制作流程
  19. 黑苹果bigsur升级monterey过程循环重启
  20. 《笑着离开惠普》读书笔记之从优秀到卓越

热门文章

  1. ubuntu安装与配置nfs服务器
  2. 拆解 Linux 网络包发送过程
  3. Python学习之函数返回多个值
  4. STM32F4 HAL库开发 -- STM32CubeMX
  5. Java super关键字
  6. 区块链架构、跨链和演进
  7. Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解
  8. Android污点分析工具flowdroid源码简析
  9. Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
  10. python中链表和数组_Python