Я пытаюсь написать текстовый файл в кодировке UTF-8 с JavaScript. Я должен написать этот текстовый файл через командную строку, поэтому мой код выглядит следующим образом ...
Мой скрипт. js:
const text = 'this is test text';
const fs = require('fs);
fs.writeFileSync('./test.txt', text, "utf8");
Мой пакет. json:
{
"name": "test-project",
"version": "0.1.0",
"private": true,
"dependencies": {
"@babel/cli": "^7.8.4",
"@babel/core": "^7.9.0",
"@babel/plugin-transform-runtime": "^7.9.0",
"@babel/preset-env": "^7.9.5",
"@babel/preset-react": "^7.9.4",
"@babel/register": "^7.9.0",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"axios": "^0.19.2",
"bootstrap": "^4.4.1",
"glob": "^7.1.6",
"jquery": "^3.4.1",
"react": "^16.12.0",
"react-bootstrap": "^1.0.0-beta.17",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"react-router-dom": "^5.1.2",
"react-router-sitemap": "^1.2.0",
"react-scripts": "3.4.0",
"react-table": "^7.0.0-rc.16",
"recharts": "^2.0.0-beta.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"sitemap": "node src/sitemap.js"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
и затем выполните эту команду в терминале:
$ node script.js
$ file --mime test.txt
$ test.txt: text/plain; charset=us-ascii
Проблема : файл, созданный fs.writeFileSyn c, закодирован в us-ascii, не UTF-8. Как я могу записать файл в UTF-8? * ПРИМЕЧАНИЕ: я использую японский P C, так что это может повлиять на кодировку файла? * NOTE2: я попробовал ниже, и результат тот же ...
const stream = fs.createWriteStream('.test.txt', "utf8");
stream.once('open', () => {
stream.write('this is test text');
});