【问题标题】:Does javascript escape() function support UTF8 charactersjavascript escape() 函数是否支持 UTF8 字符
【发布时间】:2014-07-01 09:08:00
【问题描述】:

在我现有的应用程序中,javascript escape() 函数用于对字符串进行编码。

现在,我想要的是也支持 UTF8 字符。我怎么能这样做。

简而言之,我有文本字段。也就是说,值被编码并通过网络传递。

例如:escape("Greetings 1") -- prints -- Greetings%201

我点击了以下链接:

  1. http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_escape
  2. http://www.w3schools.com/jsref/jsref_escape.asp

现在,我希望这个字段也支持 UTF8 字符。

任何想法都值得赞赏。请帮忙。

【问题讨论】:

  • escape() 是 unicode,但现在你可能应该使用 encodeURI()encodeURIComponent()
  • 我都用过。但是当传递 αβγδεζηθ 字符时,它会打印 αβγδεζηθ 字符。您也可以查看此链接:the-art-of-web.com/javascript/escape
  • 嗯,什么? escape("αβγδεζηθ")"%u03B1%u03B2%u03B3%u03B4%u03B5%u03B6%u03B7%u03B8";和encodeURI("αβγδεζηθ") 给出"%CE%B1%CE%B2%CE%B3%CE%B4%CE%B5%CE%B6%CE%B7%CE%B8"。您似乎还有其他一些编码问题。
  • @Bergi 尝试使用 UTF8 编码,在共享的链接中。我再次分享链接:the-art-of-web.com/javascript/escape 只需传递与 UTF8 编码对应的文本区域中的值。这是我在我的网络应用程序中得到的,而不是上升字符。
  • 没有。您不需要 javascript 库。您需要在服务器上修复文件编码。

标签: javascript utf-8


【解决方案1】:

非标准 escape() 函数将代码点 > 255 转换为 16 位转义 (%uxxxx),这不是您想要的。

请改用encodeURI()encodeURIComponent()

W3schools 网站上的信息充其量是有问题的,建议您仔细检查其他来源。

【讨论】:

  • 至少,w3schools.com/jsref/tryit.asp?filename=tryjsref_escape 很可怕,因为它会 html 转义 javascript 代码。
  • @Bergi:太棒了。我没有点击那个链接。我想我必须重新表达我对 w3chools 的看法。
  • Bergi:实际上,它是 HTML 输出的一种 URL 转义。 HTML-escape 完全不同(< 等等)。
  • 好的,它似乎只适用于> 255的字符代码。OP用作示例的αβγδεζηθ将被转义为αβγδεζηθ——后者在脚本中当然是无效的。
猜你喜欢
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2015-04-29
  • 1970-01-01
相关资源
最近更新 更多