2013-05-02 237 views
2

我目前正在一个网站上有两个版本,一个作为utf-8的美国网站和一个作为Shift JIS的日语版本。该网站使用Perl生成。将JS反斜杠转义字符转换为不转义字符Shift JIS

问题:

我服务的JavaScript类似于以下内容。

var text = "test \"quote\""; 

在日语网站上,哪个返回错误“Uncaught SyntaxError:意外的标识符”。这是因为反斜杠正被转换为一个拉长的反斜杠字符\,而该反斜杠字符不被视为转义字符,因此正在打破这一行。

我似乎无法找到任何人遇到这个问题,这使我怀疑我们的网站没有什么根本错误。有没有人遇到类似的情况,并找到解决方案?

非常感谢

+1

没有你的Perl代码就无法帮助你。 – daxim 2013-05-02 12:03:19

+0

那么这行是原始JS作为嵌入其他几千行代码中的梅森模板的一部分。 – 2013-05-02 13:09:43

+0

您应该至少向我们展示编码的部分代码。如果它是由梅森完成的,告诉我们你是如何设置梅森来做到这一点的。 – dolmen 2013-05-02 15:25:30

回答

1

我这里找到一些有用的信息:

Why browser is showing different back slash for a email validation regex. How to prevent that?

导致我这个镦黑客:

var text = "test ¥"quote¥""; 

这完美的作品。现在,显然这不是做这件事的方法,但它可以使其他开发人员在站点上测试其他JS交互,同时我专注于将此代码重构为不依赖字符转义的东西。我希望这些信息在某些时候可以帮助别人!

+1

我遇到了同样的情况,但是在相反的方向上,Shift_JIS编码的Simulink文件中的“\”变成了“¥”,最常见的是“\ n”变成了“¥n”(这是一个字面上的\ n,而不是换行符,但如果不是“转换”,则Simulink会解释它)。这发生在我的案例中使用'iconv -f shift_jis -t utf8 '。 – 2015-07-16 07:55:27