我遇到了一个我在其他问题上似乎无法找到的奇怪问题。
问题的简短版本是:有没有办法强制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
,则问题在于该文件中该术语的最后一个实例。)
答案 0 :(得分:0)
如果将来有人偶然发现这种情况,似乎每个系统(webpack,bower,Heroku等)都将责任归咎于其他系统。所以我无法为此找到真正的解决方案。
但是,我确实在this GitHub issue thread中找到了一种解决方法,建议将实体替换为:
String.fromCodePoint(0x00D7)
这不会被webpack转换为utf-8字符,因此完全避免了编码问题。