Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Node.js 之发送文件数据编码问题

Node.js 之发送文件数据编码问题

作者头像
兮动人
发布于 2021-06-11 11:23:10
发布于 2021-06-11 11:23:10
1.4K00
代码可运行
举报
文章被收录于专栏:兮动人的博客兮动人的博客
运行总次数:0
代码可运行

node.js中编码问题

  • 在服务端默认发送的数据,其实是 utf8 编码的内容
  • 但是浏览器不知道你是 utf8 编码的内容
  • 浏览器在不知道服务器响应内容的编码的情况下会按照当前操作系统的默认编码去解析
  • 中文操作系统默认是 gbk
  • 解决方法就是正确的告诉浏览器我给你发送的内容是什么编码的
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// require
// 端口号

var http = require('http')

var server = http.createServer()

server.on('request', function (req, res) {
 
res.setHeader('Content-Type', 'text/plain; charset=utf-8')
res.end('hello 世界')

server.listen(3000, function () {
  console.log('Server is running...')
})
  • 在 http 协议中,Content-Type 就是用来告知对方我给你发送的数据内容是什么类型
  • 可以在node.js中文网的API下找到HTTP:http://nodejs.cn/api/http.html
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    res.setHeader('Content-Type','text/plain; charset=utf-8')

测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var http = require('http')

var server = http.createServer()

server.on('request',function(req,res){
    res.setHeader('Content-Type','text/plain; charset=utf-8')
    res.end('hello 世界!')
})



server.listen(3000,function(){
    console.log('Server is running...');
})

根据路径浏览器解析不同的内容

  • text/plain就是普通文本
  • 发送的是 html格式的字符串,则也要告诉浏览器我给你发送是text/html格式的内容
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var http = require('http')

var server = http.createServer()

server.on('request', function (req, res) {

var url = req.url

  if (url === '/plain') {
    // text/plain 就是普通文本
    res.setHeader('Content-Type', 'text/plain; charset=utf-8')
    res.end('hello 世界')
  } else if (url === '/html') {
    // 如果你发送的是 html 格式的字符串,则也要告诉浏览器我给你发送是 text/html 格式的内容
    res.setHeader('Content-Type', 'text/html; charset=utf-8')
    res.end('<p>hello html <a href="">点我</a></p>')
  }
})

server.listen(3000, function () {
  console.log('Server is running...')
})
  • 请求:localhost:3000/plain
  • 请求:localhost:3000/html
  • 访问百度发现响应的是字符串,只有浏览器能解析识别出来
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Node.js 之Content-Type内容类型
结合 fs 发送文件中的数据 Content-Type,查看内容类型:http://tool.oschina.net/commons 不同的资源对应的 Content-Type 是不一样的 图片不需要指定编码 一般只为字符数据才指定编码 var http = require('http') var fs = require('fs') var server = http.createServer() server.on('request', function (req, res) { // / in
兮动人
2021/06/11
1.4K0
Node.js 之Content-Type内容类型
node.js的http模块实例演示
上世纪六七十年代,红岸基地一直在向茫茫外太空发送讯号,当叶文洁通过太阳作为广播,将地球的讯号向外发送时,宇宙的各个先进文明都接收到了讯号,其中就包括了离我们最近的三体星。
章鱼喵
2018/08/02
7900
node.js的http模块实例演示
Node.js基础搭建服务测试
首先确保安装node,下载地址 node.js下载地址 还是下长期维护版本的比较好,建议不要下载新版本,此案例,针对windows下的哈
我乃小神神
2019/03/20
9330
Node.js基础搭建服务测试
nodejs基础-HTTP
步骤: 1,加载http模块 2.创建http服务 3、为http服务对象添加request事件处理程序 4·开启http服务监听,准备接收客户端请求 注意: 1,浏览器显示可能是乱码,所以可以通过.res.setHeader("Content-Type", 'text/plain; charset=utf-8');设置浏览器显示时所使用的编码. 2. Chrome浏览器默认无法手动设置编码,需要安装"Set Character Encoding"扩展. 3,演示一下设置Content-Type-text/html'和"Content-Type-text/plain的区别.
eadela
2019/09/29
5720
nodejs基础-HTTP
Node.js初探(一)——fs、path、http
浏览器中有JS解析引擎:每个浏览器的解析引擎都不一样,Chrome浏览器中的V8解析引擎最好。
conanma
2022/01/05
1.3K0
Node.js中Http模块
一,创建基本的web服务器。 //1,导入http模块 const http = require('http') //2,创建web服务器实例 const server= http.createServer() //3,为服务器实例绑定request 事件,监听客户端的请求 server.on('request',(req,res)=>{ console.log('someone visit our web server') }) //4,启动服务器,指定端口号 server.listen(1212,(
张苹果
2022/10/04
1.2K0
【灵魂拷问】你为什么要来学习Node.js呢?
Node是一种新技术,诞生于2009年,经过几年的变化,Node.js生态圈以及逐渐走向了稳定,不少开发者入门时,总是要经历一种思维的转变,但是学会Node.js可以进行Web后端的开发,同时掌握事件驱动的异步式编程风格。
达达前端
2019/12/24
1.3K0
【灵魂拷问】你为什么要来学习Node.js呢?
Node.js学习笔记——详解http模块即创建web服务器基本步骤
通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。
timerring
2022/07/20
7720
【Node.js】解决中文乱码问题
Node.js教学 专栏 从头开始学习 ---- 问题描述 当我们向客户端发送中文信息的时候,会出现乱码问题。 //导入模块 const http = require('http'); //创建实例对象 const server = http.createServer() server.on('request', function (req, res) { //req是请求对象 包含了与客户端相关的数据和属性 const url = req.url;//链接 const metho
坚毅的小解同志的前端社区
2022/11/28
6.7K0
【Node.js】解决中文乱码问题
使用noode.js创建一个服务器
打开gitbash,切换到js文件当前的文件夹,然后输入node index.js(index.js是我的js文件名,反正你们取什么名就输入啥名)
bamboo
2019/01/29
1.6K0
使用noode.js创建一个服务器
Node.js Web 模块的各种用法和常见场景
Node.js 是一个基于 V8 引擎的 JavaScript 运行时环境,它提供了许多强大的模块和工具,用于构建高性能的网络应用程序。其中,Node.js 的 Web 模块是一个重要的模块,它提供了一系列功能和API,用于处理 HTTP 请求、响应、路由和中间件等。本文将详细介绍 Node.js Web 模块的各种用法和常见场景。
网络技术联盟站
2023/07/07
2130
四、实现跨域访问
通过动态创建 script 标签,通过 script 标签的 src 请求没有域限制来获取资源
Dreamy.TZK
2020/08/24
1.7K0
四、实现跨域访问
Node.js笔记
Node.js 是一个开源和跨平台的 JavaScript 运行时环境。Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)
赤蓝紫
2023/01/02
1.2K0
Node.js笔记
Node.js做静态资源服务器
在上一篇文章介绍了Node.js基础API 接下来我们做一个案例,用Node.js实现静态资源服务器
切图仔
2022/09/14
2.4K0
Node.js做静态资源服务器
通过JSONP实现跨域访问
说到跨域访问就要谈到浏览器的同源策略,所谓同源指的就是协议相同、域名相同、端口号相同,三个条件必须全部匹配,否则就会收到限制,例如:
Dreamy.TZK
2020/09/07
1.9K0
Node.js组成及Events模块
Node.js本身提供许多模块,每个模块实现一种功能,如文件操作模块fs,构建HTTP服务的http模块等,每个模块都是一个javascript文件,可以自己编写模块。
conanma
2022/01/05
8710
Node.js
主要学习:JavaScript+Node.js内置API模块(fs、path、http等)+第三方API模块(express、mysql等)
岳泽以
2022/11/21
8.2K0
Node.js
Node.js http模块的使用,写一个最基本的服务器
代码: // 导入http模块 const http = require('http') // 导入fs模块 const fs = require('fs') // 导入path模块 const path = require('path') // 创建web服务器实例 const server = http.createServer() // 为服务器绑定request事件,监听客户端请求 server.on('request', (req, res) => { // 设置响应头 res.
倾盖
2022/08/16
4310
Node.js http模块的使用,写一个最基本的服务器
nodejs核心api-http模块
我们知道传统的HTPP服务器会由Aphche、Nginx、IIS之类的软件来担任,但是nodejs并不需要,nodejs提供了http模块,自身就可以用来构建服务器,而且http模块是由C++实现的,性能可靠。大部分的node使用者,都是用node来做Web API的,而HTTP模块是提供Web API的基础。为了支持所有的HTTP应用,node中的HTTTP模块提供的API是偏向底层化的。利用HTTP模块,我们可以简单快速搭建一个Web Server。
conanma
2022/01/04
2.5K0
Node.js 三大特点你都懂了吗
在Java、PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8GB内存的服务器可以同时连接的最大用户数为4000个左右。要让Web应用程序支持更多的用户,就需要增加服务器的数量,而Web应用程序的硬件成本当然就上升了。
Bug开发工程师
2018/09/21
1.6K0
Node.js 三大特点你都懂了吗
相关推荐
Node.js 之Content-Type内容类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验