• 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进行文件编码格式转换

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了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构造函数以及生命周期函数的内容解析(附代码)
  • 简单的微信小程序日历组件的实现(附完整代码)
  • 微信小游戏中如何实现转发&分享&获取头像&游戏圈四种功能
  • 小程序中如何实现分享功能 (代码示例)

相关文章

  • 微信小程序 九宫格实例代码
  • 微信小程序网络请求wx.request的介绍
  • 微信小程序Promise简化回调实例分享
  • 微信小程序中iconfont的用法详解(附代码)
  • 微信小程序中组件通讯的介绍(代码示例)
  • 微信小程序云开发API 服务端
  • 微信小程序云开发API 获取集合的引用
  • 微信小程序中跳转页面的两种方法
  • 微信小程序rpx尺寸单位以及样式用法详解
  • 微信小程序获取相册照片实例详解

文章分类

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

最近更新的内容

    • 微信小程序传递参数以及接收数据的方法
    • 教你快速使用微信小程序 微信小程序从哪进入
    • 微信小程序开发之滑块视图容器
    • 微信小程序 高德地图SDK的解析
    • 微信小程序开发:配置详解
    • 微信小程序开发怎样编写代码
    • 微信公众平台小程序开发教程
    • 微信小程序图表插件(wx-charts)实例代码
    • 分享jquery抽奖小程序实现方法(代码)
    • 在小程序中如何使用npm包

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

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