最近仿照anywhere写个anyentry目录读取器,发现使用stream.pipe()将文件输入到页面时,出现中文乱码

看哇



看到着实不爽,不解决咋能算

于是开始寻找问题根源

一、配置encoding

一开始就想到了是stream.pipe() 文件读取的时候没有设置编码

看官网的介绍是这样的



于是果断加上

然鹅 测试然并卵

二、配置html的charset

再一细想应该是html没有设置 charset 的原因

跑去一看html



有配置呀! ???那奇了怪了

静下心来在想想,再次运行发现



这个为什么没有乱码?!

于是比对页面

这个是目录页面


这个是文件页面



发现head中根本就没有东西

再看一次代码,总算是明白了



这个是直接将其文件流返回给response的



而目录是使用了html模板进行渲染的,就是是一个乱码一个没乱的原因了

三、setHeader 增加charset

最后res.setHeader('Content-Type', contentType['text']+"; charset=utf-8"); 增加一个charset=utf-8 解决问题


好了问题解决,告一段落,其他废话不多说

效果测试可以 本地安装 npm i -g anyentry, anyentry -p 9999

源码地址可以访问 https://github.com/dengxiaoning/anyentry


nodejs 中 stream.pipe()直接将文件输出到页面乱码的更多相关文章

  1. nodejs中Stream的理解

    在nodejs中可以通过fs模块读写文件,我们来看下fs模块提供的接口: fs.readFile(filename, callback) 异步读取文件. filename是读取文件的文件名,如果是相对 ...

  2. nodejs中stream相关资料

    nodejs中流(stream)的理解 nodejs stream 手册完整中文版本 nodejs stream详细使用介绍

  3. Node.js中使用pipe拷贝大文件不能完全拷贝的解决办法

    原来的代码如下: var readable = fs.createReadStream( filepath ); var writable = fs.createWriteStream( outFil ...

  4. learning nodejs 1 - stream.pipe

    a simple http server using inner http module. var http = require('http'); var fs = require('fs'); // ...

  5. nodejs中使用http请求返回值为html时乱码问题

    今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法.果不其然报错了:SyntaxError: Unexpected token  in JSON ...

  6. Html表单提交到Servlet输出到页面乱码

    Html使用的编码是UTF-8编码显示页面,之后使用form表单提交字段到Servlet中,Servlet将利用getParamer方法获得form提交的字段,之后通过Respone中的writer将 ...

  7. nodejs基础 -- Stream流

    nodejs 的 Stream 是一个抽象接口,node中有很多对象实现了这个接口.例如,对http服务器发起请求的request对象就是一个Stream,还有stdout(标准输出)也是一个Stre ...

  8. 理解nodejs中的stream(流)

    阅读目录 一:nodeJS中的stream(流)的概念及作用? 二:fs.createReadStream() 可读流 三:fs.createWriteStream() 可写流 回到顶部 一:node ...

  9. nodeJS中读写文件方法的区别

    导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三 ...

  10. nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容

    1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...

随机推荐

  1. 使用nsis美化安装向导后,安装时实现浏览器自定义协议打开

    1. electron官方提供api,支持向注册表中写入协议,可通过浏览器打开 app.setAsDefaultProtocolClient('open-electron') 问题:1. 因为该方法时 ...

  2. 利用Karlibr生成April标定板图像

    1 关键的命令 rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.02 --tspace 0 ...

  3. PHP微信三方平台-微信支付(扫码支付)

    1.官方文档地址: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 2.逻辑分析: 生成支付二维码->用户扫码支付-& ...

  4. Redis高频40问

    Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Re ...

  5. Nginx主要功能

    Nginx主要功能: 1.反向代理2.负载均衡3.HTTP服务器(包含动静分离)4.正向代理 一.反向代理 反向代理应该是 Nginx 做的最多的一件事了,什么是反向代理呢,以下是百度百科的说法:反向 ...

  6. SSM整合的所有配置(配置类)

    导入依赖坐标pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artif ...

  7. 2.JWT实现单点登录的概念

    1.总结: 昨天主要是了解了JWT的作用.构成以及RSA的作用和构成,再就是分布式认证的流程和集中式的差别 JWT的作用:JWT用于生成和校验token JWT的构成:头部.载荷以及签名 头部:设置规 ...

  8. Go Home

    Go Home (https://www.luogu.com.cn/problem/AT_arc070_a) 比较需要理解题意的一个题目 看看题目解析:在0秒的时候有一只袋鼠在左右无限长的数轴上的原点 ...

  9. boot-admin整合flowable官方editor-app进行BPMN2.0建模

    正所谓百家争鸣.见仁见智.众说纷纭.各有千秋!在工作流bpmn2.0可视化建模工具实现的细分领域,网上扑面而来的是 bpmn.js 这个渲染工具包和web建模器,而笔者却认为使用flowable官方开 ...

  10. MySQL相关操作(实用函数和sql语法)

    1.时间函数 当前时间 select current_timestamp(); 当前时间戳 select UNIX_TIMESTAMP(NOW()); 当前时间戳精确到毫秒 select REPLAC ...