【问题标题】:Why special charactors got replaced when imported using 'require' in NodeJS?为什么在 Node JS 中使用“require”导入时特殊字符会被替换?
【发布时间】:2019-02-28 06:04:08
【问题描述】:

我是 JavaScript 和 NodeJS 的新手。所以如果这个问题很明显,请不要谴责我。

我的outsourced 文件是一个简单的配置文件。这是它的简短版本。

config.js:

var config = {};
config.Web = {};

config.Web.Title = 'Title with öüöäéàè';

module.exports = config;

config.js 使用该代码加载到我的app.js

var configread = require('./views/config/config');

所有特殊字符都被 替换为控制台可见:

var WebsiteTitle = configread.Web.Title;
console.log(WebsiteTitle);

app.js 脚本中定义的字符串本身没有这种行为。所以我认为问题一定在于将我的config.js 加载到我的应用程序中。

有人对此行为有解决方案吗?

【问题讨论】:

  • 这在我的机器上应该可以正常工作。它打印正确的字符串Title with öüöäéàè
  • 您可以在en.wikipedia.org/wiki/Specials_(Unicode_block) 阅读有关此符号的信息。这意味着您的系统无法渲染它。
  • 感谢@vibhor1997a 的快速响应!我会理解我的系统何时会替换任何特殊字符。但是替换只发生在来自 config.js 的字符串上。当我添加额外的一行时,例如 console.log('äöü');在我的 app.js 中,它可以正确打印。

标签: javascript node.js ecmascript-6 character-encoding requirejs


【解决方案1】:

经过通宵研究,我自己得到了答案。

config.js 文件是使用 Windows 记事本创建的。从那里它得到了ANSI编码。当 config.js 未以 UTF-8 编码时,NodeJS 似乎无法处理特殊字符。我不得不将代码放在一个 UTF-8 编码的config.js 文件中来解决这个问题。

感谢您之前的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2013-01-27
    • 1970-01-01
    • 2012-11-16
    • 2021-08-09
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多