尝试创建一个文本字段,人们在没有反斜杠的情况下编写unicode。我想在输入后添加反斜杠。因此用户输入u2605并将代码转换为“\ u2605”,然后将其转换为unicode字符并将其插入文本流中。
我的代码:
这有效:
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。所以将 追踪(“\ u2605”==“\ u”+“2605”)
答案 0 :(得分:2)
"\u2605"
是一个包含单个字符的字符串,该字符的代码点为2605
,而"\\u" + "2605"
是一个包含6个字符的字符串(反斜杠,u
和四位数字。)
如果您只想从四位数构建一个unicode字符,您应该可以使用String.fromCharCode
。问题在于转义序列使用hexadecimal数字,而该方法显然采用十进制数字。因此,如果用户输入十六进制字符串,则必须先转换它:
trace(String.fromCharCode(parseInt('2605', 16)) == '\u2605'));
答案 1 :(得分:0)
这是一个有趣的问题!我认为你不能连接字符串文字并实现你想要做的事情。最初形成字符串文字时会发生相关的字符转义,这意味着您首先需要整个序列。
但您应该能够获取用户提供的数字并使用String.fromCharCode(...)
动态生成Unicode字符串。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html#fromCharCode()