2

试图制作一个文本字段,人们可以在其中编写没有反斜杠的 unicode。我想在他们输入后添加反斜杠。因此,用户键入 u2605,代码将其转换为“\u2605”,然后我将其转换为 unicode 字符并将其插入 textflow。

我的代码:

  • 这有效:

    span.text = publicFunctions.htmlUnescape(he.encode("\u2605"))
    
  • 这不起作用:

    span.text = publicFunctions.htmlUnescape(he.encode("\\u"+"2605"))
    

如何制作一个充当 unicode 字符串的字符串?

尝试了各种各样的东西,escape(unescape())转换为数字,“\u”,“\u”......没有任何帮助。

trace("\u2605" == "\u"+"2605") ... 将返回 false。trace("\u2605" == "\u"+"2605")

4

2 回答 2

2

"\u2605"是具有单个字符的字符串,带有代码点的字符2605"\\u" + "2605"而是具有 6 个字符(反斜杠、theu和四位数字)的字符串。

如果您想仅从四位数字构造一个 unicode 字符,您应该能够使用String.fromCharCode. 问题只是转义序列使用十六进制数,而该方法显然采用十进制数。所以如果用户输入一个十六进制字符串,你必须先转换它:

trace(String.fromCharCode(parseInt('2605', 16)) == '\u2605'));
于 2013-07-30T00:25:35.940 回答
0

这是一个有趣的问题!我认为您无法连接字符串文字并实现您想要做的事情。相关字符转义发生在字符串文字最初形成时,这意味着您首先需要将整个序列放在一起。

但是您应该能够获取用户提供的数字并动态生成 Unicode 字符串String.fromCharCode(...)

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html#fromCharCode()

于 2013-07-30T00:23:29.123 回答