【微信小游戏】CocosCreator做小游戏 — 字符串编码转换(UTF-8和GBK互转)

在CocosCreator开发微信小游戏时遇到编码问题,服务端使用GBK编码,需要在客户端将字符串转换为UTF-8显示。文章探讨了两种方法:1. 使用TextDecoder,该方法在真机上不适用;2. 引入iconv-lite库进行编码转换,通过构建npm解决在微信小游戏中的使用问题。
摘要由CSDN通过智能技术生成

问题描述:项目中服务端使用的GBK编码,中文字符串传输到客户端后,需要转换成UTF-8编码才能正常显示。

 

方法一:使用TextDecoder方法

// 先在buffer中取strlen长度的数据,是GBK编码的字符串,buffer是服务器传过来的
var bytes = new Uint8Array(view.buffer, offset, strlen);
// 调用下面的方法直接转换
var str = new TextDecoder('gbk').decode(bytes);

此方法在web环境和微信开发工具上都是没问题的,但是在真机上回报没有TextDecoder方法的错误。

并且这个方法并没有对应的TexEncoder方法,我们还有上传字符串的需求,因此只能考虑别的方法。

 

方法二:使用iconv-lite库

微信小游戏支持添加npm库,先添加iconv-lite库

// 在控制台进入wechatgame项目根目录,执行以下代码,可以使用默认配置,最后输入"yes"
npm init
// 初始化完成后,安装库
mpm i iconv-lite
// 由于iconv库是基于nodejs写的,而微信缺少相关库,所以这里要再加两个库,不然会报错
mpm i buffer
mpm i string_decoder

装好后有一下内容:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值