耀极客论坛

 找回密码
 立即注册
查看: 677|回复: 0

node.js解决客户端请求数据里面中文乱码的事件方法

[复制链接]

336

主题

318

帖子

22万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
220553
发表于 2022-5-7 01:39:16 | 显示全部楼层 |阅读模式
  本文主要介绍了node.js解决客户端请求数据里面中文乱码的事件方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  node.js解决客户端请求数据里面中文乱码的事件
  例如代码:
  1. var http = require('http');
  2. var server = http.createServer();
  3. server.on('request',function(req,res){
  4.     // res.end("hello world");
  5.     res.end("你好 世界");
  6. });
  7. server.listen(3000,function(){
  8.     console.log("Server is running");
  9. });
复制代码


  原因:
  在服务端默认发送的数据,其实是UFT8编码内容
  但是浏览器不知道你是UFT8编码内容
  浏览器在不知道服务器响应内容的编码情况下会按照当前操作系统的默认编码去执行
  中文操作系统默认是GBK
  解决方法:正确是告诉浏览器我给你发送的是什么类型的数据res.setHeader('Content-Type','text/plain;charset=utf-8');内容类型,注意连接符不要写错,utf-8也不要乱写。在http协议中,content-Type就是用来告知对方我给你发送的数据内容是什么类型,然后后面就是紧跟着写上类型
  1. var http = require('http');
  2. var server = http.createServer();
  3. server.on('request',function(req,res){
  4.     // res.end("hello world");
  5.     res.setHeader('Content-Type','text/plain;charset=utf-8');
  6.     res.end("你好 世界");
  7. });
  8. server.listen(3000,function(){
  9.     console.log("Server is running");
  10. });
复制代码

注意这里的类型有很多种

响应内容类型Content-Type
  1. var http = require('http');
  2. var server = http.createServer();
  3. server.on('request',function(req,res){
  4.     if(req.url==='/plain'){
  5.         res.setHeader('Content-Type','text/plain;charset=utf-8');
  6.         res.end("你好 世界");
  7.     }else if(req.url==='/html'){
  8.         res.setHeader('Content-Type','text/html;charset=utf-8');
  9.         res.end("‹h1>你好 世界‹br/> hello world‹/h1>");
  10.     }
  11.    
  12. });
  13. server.listen(3000,function(){
  14.     console.log("Server is running");
  15. });
复制代码
  根据不同请求路径返回不同的类型Content-Type格式

  到此这篇关于node.js解决客户端请求数据里面中文乱码的事件方法的文章就介绍到这了,更多相关node 客户端请求数据乱码 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|耀极客论坛 ( 粤ICP备2022052845号-2 )|网站地图

GMT+8, 2022-11-28 20:05 , Processed in 0.070812 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表