收藏
回答

请问小程序中&#开头的字符编码如何解析成字符

框架类型 问题类型 终端类型 操作系统 微信版本 基础库版本
小程序 Bug 客户端 6.5 1.7.0

有些文字从后台获取过来是类似 中国 的,在小程序中如何解析成字符

回答关注问题邀请回答
收藏

4 个回答

  • 陈
    2018-06-06

    如果是用户输入了这种字符呢

    2018-06-06
    有用
    回复
  • 右。
    右。
    2018-06-05
    var hahaha = '中  哈哈哈哈哈😄哈哈😄';
        var text = hahaha.replace(/&#.{5,6};/g,function(res){
          res = res.substring(2, res.length-1);
          if (res.indexOf('x') == 0) {
            res = res.substring(1);
            return String.fromCodePoint(parseInt(res, 16));
          }
          return String.fromCodePoint(parseInt(res, 10));
        });


    2018-06-05
    有用
    回复 4
    • 2018-06-05


      这个应该跟你的方式是一样的,谢谢了

      2018-06-05
      回复
    • 右。
      右。
      2018-06-05回复

      这个正则解不出emoji

      2018-06-05
      回复
    • 2018-06-05回复右。

      为什么您这个正则的&和#之间有个空格 ,我把空格删掉就解不出emoji了

      2018-06-05
      回复
    • 右。
      右。
      2018-06-05回复

      没有空格,估计是代码插入工具的问题

      2018-06-05
      回复
  • 卢霄霄
    卢霄霄
    2018-06-05

    unicode吧。我不是很熟。。如果你确定后台给你的这个是个String类型,我只知道很傻的方式

    let a = "中国 "

    let b = unescape(escape(a).replace(/%26%23x/ig,'%u').replace(/%3B/g,''))

    console.log(b) 或者 String(b) 或者不需要额外处理了

    2018-06-05
    有用
    回复 11
    • 2018-06-05

      试了下是可以的 能否麻烦您具体解释下是什么意思

      2018-06-05
      回复
    • 卢霄霄
      卢霄霄
      2018-06-05回复

      unicode本来在html里的格式是 \u4e2d\u56fd。用正则直接把 &#x 进行替换成\u是不行的,只能是替换成\\u。所以用escape进行了编码(算是编码吧。。),& => %26,#  => %23 ,\u => %u ,  ; => %3B 。然后用replace进行替换,将 &#x 替换成 \u ,将;替换成'',完成之后,再 unescape回来。

      2018-06-05
      1
      回复
    • 2018-06-05回复卢霄霄

      有些字符不是&#x开头的

      2018-06-05
      回复
    • 卢霄霄
      卢霄霄
      2018-06-05回复

      贴出来看看呢

      2018-06-05
      回复
    • 2018-06-05回复卢霄霄

      "볼빨간사춘기"

      是一串韩文

      2018-06-05
      回复
    查看更多(6)
  • joker
    joker
    2018-06-05

    https://www.baidu.com/link?url=IiQjFHwOPqIE3zyye-G83oAevsboacQcP74PKs5UkVMWR9n1bCTmJ3szBTyuSQH4f9TT_N5F1G-Wcw-7Cx5Foa&wd=&eqid=a6e427f30000fe5c000000045b15f26f

    2018-06-05
    有用
    回复 1
    • 2018-06-05

      我试了一下,无法解析成字符

      2018-06-05
      回复
登录 后发表内容