JS中的字符串转换unicode?

时间:2018-09-11 06:06:44

标签: javascript vue.js

<i class="icon">&#xe672;</i>

结果是一个图标,如:>

但是当我在vue中渲染时:

<i class="icon">{{a}}</i>

a = '&#xe672;'

结果是我有一个字符串!

1 个答案:

答案 0 :(得分:1)

a包含Unicode字符的 HTML转义,但这在JavaScript中不是有效的转义序列,因此它只是一个文字字符串。一种快速解决方案是将a绑定到元素的v-html,HTML换码序列有效。

或者,您可以修改a以使用适当的JavaScript转义序列。 JavaScript中带有Unicode code point escape的Unicode字符的等效项是:

a = '\u{e672}'

new Vue({
  el: '#app',
  data: () => ({
    a: '\u{e672}',
    b: '\u{01F638}',
  }),
})
<script src="https://unpkg.com/vue@2.5.17"></script>

<div id="app">
  <div>{{a}} &#xe672;</div>
  <div>{{b}} &#x1F638;</div>
</div>

另一种替代方法是使用第三方库(例如ent)对HTML转义的字符串进行解码:

 const ent = require('ent');
 a = ent.decode('&#xe672;');