无论编码如何,readFileSync()都不会返回特殊字符

时间:2015-03-28 12:57:34

标签: node.js

我的要求非常简单...打开任何旧的ANSI-ASCII-UTF8-Unicode TXT文件并替换一些特殊的"字处理"字符如花哨的单引号(\ u2019)和双引号(\ u201C和\ u201D)与普通的香草Ascii,然后做一些其他(与问题无关)解析。

然而,无论我尝试的编码(ascii,utf8,二进制),我都无法让Node.js正确返回所有字符,以便用它们的Ascii等价替换它们,而是得到无用的小矩形!

这是函数的相关部分......

function LoadTxtFile(Name){

fs=require('fs');

if (fs.existsSync(Name)){

var Source=fs.readFileSync(Name,'binary').toString();

/* Replace miscellaneous characters which works fine…*/
Source=Source.replace(/\©/g,'©');
Source=Source.replace(/\…/g,'...');
Source=Source.replace(/\t/g,' ');
Source=Source.replace(/\'/g,''')

/* Replace the dreaded single/double quotes but they are never located! */
Source=Source.replace(/\u2019/g,''');
Source=Source.replace(/\u201C/g,'"');
Source=Source.replace(/\u201D/g,'"');

/* And we’re stuck! */

}}

非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试Node-Iconv库,看看是否有帮助