是否可以强制Bower安装使用utf-8编码?

时间:2016-03-18 06:37:20

标签: unicode encoding utf-8 bower webpack

我遇到了一个我在其他问题上似乎无法找到的奇怪问题。

问题的简短版本是:有没有办法强制Bower使用utf-8编码安装下载/保存模块?

长版本:我有一个由webpack构建的文件包,它使用乘法符号(×)作为关闭按钮。

在webpack编译完所有内容后,有问题的代码块如下所示:

_react2['default'].createElement(
  'a',
  { className: 'pn-finalists__close-btn', onClick: clickHandler },
  '×'
)

到目前为止一切顺利。

这个问题似乎是由鲍尔引起的 - 而且只是间歇性的。当我使用bower install --save user/repo#^0.3.2从GitHub仓库安装时,编码中断并且文件下载如下:

_react2['default'].createElement(
  'a',
  { className: 'pn-finalists__close-btn', onClick: clickHandler },
  'Ã'
)

我试图通过webpack阻止这种情况,但我似乎无法找到将×更改为×的webpack部分(我也尝试了\u00D7,结果相同)。

但这似乎是Bower不应该发生的事情。我已经验证该文件在GitHub上没有编码问题,所以它发生在bower install期间的某个地方,除非有一个我不知道的中间步骤。

有没有人见过这个?如果是这样,有没有办法通过Bower的API修复此问题和/或禁用将unicode / HTML实体转换为Unicode字符的webpack部分?

修改

正在传输的文件是this one。 (GitHub不会以允许我链接到行号的方式显示它,但如果您搜索close-btn,则问题在于该文件中该术语的最后一个实例。)

1 个答案:

答案 0 :(得分:0)

如果将来有人偶然发现这种情况,似乎每个系统(webpack,bower,Heroku等)都将责任归咎于其他系统。所以我无法为此找到真正的解决方案。

但是,我确实在this GitHub issue thread中找到了一种解决方法,建议将实体替换为:

String.fromCodePoint(0x00D7)

这不会被webpack转换为utf-8字符,因此完全避免了编码问题。