zoukankan      html  css  js  c++  java
  • nodejs 中 stream.pipe()直接将文件输出到页面乱码

    最近仿照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


  • 相关阅读:
    C# 高级编程语言
    unity ForceMode
    UnityError 切换场景灯光变黑问题解决
    Unity Time.timeScale
    Unity 打开网页 Application.OpenURL(字符串);
    Unity www动态加载网上图片
    Unity GameObject.Find 和 transform.Find
    Unity UGUI按钮添加点击事件
    事务
    git和redis
  • 原文地址:https://www.cnblogs.com/dengxiaoning/p/12871798.html
Copyright © 2011-2022 走看看