今回は、Node.jsファイルのエンコード形式を変換する手順と、Node.jsファイルのエンコード形式を変換するための注意事項について詳しく説明します。実際のケースを見てみましょう。
プロジェクトには UTF-8 形式ではない Lua ファイルが多数あり、EditPlus を使用して表示すると、ASCII として表示されます。以前にも書きましたが、BOM 付きのものもありますが、これには一定のルールがあります。 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);上記の判断に注意してください。 1つ目がGB2312またはASCIIの場合は、対応するエンコードを直接変換してください。 utf-8にします。そして返された形式が の場合、まず PC の下に改行があるかどうかを判断し、改行がある場合はすべて GBK として処理します。 全体のアイデアは実際には比較的単純です。難しいのは、ファイルのエンコード形式を判断することです。これは本当に難しいです>_使用されるサードパーティライブラリ: encoding
https://
github.com/andris9/encodingjschardet https://github.com/aadsm/jschardetnode-chardet https://github.com/ runk /node-chardet
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。
PopupWindow コンポーネントの使用手順分析の Vue 実装
vue+jquery+lodash スライド時の上部フローティング固定関数の詳細な説明
以上がNode.js ファイルのエンコード形式の変換手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



