• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 利用Node.js进行文件编码格式转换

利用Node.js进行文件编码格式转换

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了javascript,Node.js,编码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
这次给大家带来利用Node.js进行文件编码格式转换,利用Node.js进行文件编码格式转换的注意事项有哪些,下面就是实战案例,一起来看一下。

ASCII编码就比较蛋疼,通过搜索网上资源,反复测试对比,最终形成下面比较靠谱的方法(有一些 EditPlus显示编码为utf-8但node.js库返回的却是其它编码>_<)

判断修改是否无误,只需要在修改完之后,通过SVN提交,浏览提交列表,双击任意一项待提交文件,如果显示下图所示的对话框,则说明修改成功,其它都会看到中文反而变成乱码了

var fs = require('fs');
var chardet = require('chardet');
var jschardet = require("jschardet");
var encoding = require("encoding");
var path = "lua目录";
function readDirectory(dirPath) {
  if (fs.existsSync(dirPath)) {
    var files = fs.readdirSync(dirPath);
    files.forEach(function (file) {
      var filePath = dirPath + "/" + file;
      var stats = fs.statSync(filePath);
      if (stats.isDirectory()) {
        // console.log('/n读取目录:\n', filePath, "\n");
        readDirectory(filePath);
      } else if (stats.isFile() && /\.lua$/.test(filePath)) {
        var buff = fs.readFileSync(filePath);
        if (buff.length && buff[0].toString(16).toLowerCase() == "ef" && buff[1].toString(16).toLowerCase() == "bb" && buff[2].toString(16).toLowerCase() == "bf") {
          //EF BB BF 239 187 191
          console.log('\n发现BOM文件:', filePath, "\n");
          buff = buff.slice(3);
          fs.writeFile(filePath, buff.toString(), "utf8");
        }
        // { encoding: 'UTF-8', confidence: 0.99 }
        // var charset = chardet.detectFileSync(filePath);
        var info = jschardet.detect(buff);
        if (info.encoding == "GB2312" || info.encoding == "ascii") {
          var resultBuffer = encoding.convert(buff, "UTF-8", info.encoding);
          fs.writeFile(filePath, resultBuffer, "utf8");
        }
        else if (info.encoding != "UTF-8" && chardet.detectFileSync(filePath) != "UTF-8")
        {
          if (buff.toString().indexOf("\r\n") > -1)
          {
            var resultBuffer = encoding.convert(buff, "UTF-8", "GBK");
            fs.writeFile(filePath, resultBuffer, "utf8");
          }
        }
      }
    });
  } else {
    console.log('Not Found Path : ', dirPath);
  }
}
readDirectory(path);

注意上面的判断,第一个明确是 GB2312或者ascii时,直接将相应的编码转为 utf-8。而如果返回是格式,先判断是否有PC下的换行符,如果有则全部将它视为GBK进行处理。

整个思路其实是比较简单,难点在于如果判断文件编码格式。这个真的很难>_<,获取原编码格式后,调用 encoding.convert(buff, 目标编码格式 , 原始编码格式 ); 便可得到所需要的编码。如果有空而且有兴趣,可以下载Notepad++的源码,看它是如何判断文件的编码格式

相信看了本文案例你已经掌握了方法,更多精彩请关注微课江湖其它相关文章!

推荐阅读:

js基础提升学习之三种内置对象

js基础提升学习之基本数据类型

以上就是利用Node.js进行文件编码格式转换的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何实现小程序动画?小程序动画的实现方法
  • 微信小程序如何使用微信SlideView组件(附示例)
  • 微信小程序多层嵌套渲染列表及数据获取的代码
  • 微信小程序支持 cookie的代码实现
  • 什么是懒加载?小程序中图片懒加载的两种实现方法
  • 微信小程序中选项卡的实现方法
  • 微信小程序Page构造函数以及生命周期函数的内容解析(附代码)
  • 简单的微信小程序日历组件的实现(附完整代码)
  • 微信小游戏中如何实现转发&分享&获取头像&游戏圈四种功能
  • 小程序中如何实现分享功能 (代码示例)

相关文章

  • 2018-11-30微信小程序 应用生命周期详解
  • 2018-11-30谈谈玲珑剔透的现状、前景与机遇
  • 2018-11-30微信小程序中缓存的解析
  • 2018-11-30微信小程序开发系列(五)Flex布局的详解
  • 2018-11-30推荐一个常用的WEB开发小工具包
  • 2018-08-20微信小程序 注册页面 Page()函数
  • 2018-11-30微信小程序与页面wepy框架布局应用案例分享
  • 2018-11-30微信小程序开发中怎样实现搜索内容高亮功能
  • 2018-11-30关于微信小程序设置启动页面的两种方法介绍
  • 2018-11-30微信小程序如何获取循环元素id与wx.login登录操作的实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序表单组件多行输入框 textarea
    • 微信小程序是用什么语言开发的 微信小程序开发语言可以用php吗
    • 微信小程序 WXS模块
    • 微信小程序实现添加手机联系人功能实现方法
    • 一个第三方微信小程序开发工具及其使用介绍
    • 小程序之JavaScript动态修改样式代码展示
    • nodejs开发微信小程序实现密码的加密
    • 微信小程序开发Window配置图解
    • 小程序开发基础篇之logs页面解析(6)
    • 微信小程序 scroll-view隐藏滚动条详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有