javascript 一个很小的GBK库(gbk,gb2312)

现在的新项目应该很少再使用 gbkgb2312 了, 但还是有不少老项目在使用;
而新项目免不了要与老项目有一些”沟通”;
这样的项目, 尤其是一些web项目, 常常需要考虑到底是前端引一个GBK库, 还是在服务端处理GBK的问题, 因为web端使用GBK库一般会比较大, 而在服务端处理又有些麻烦;
如果有一个超小的GBK库就方便了;

项目地址:

https://github.com/cnwhy/GBK.js

特性

  • 就是比一般的GBK库要小, 主要是改进了之前网上流传的一个GBK库, 大概50几K, 改进后的库31k, 而正常的GBK编码表就要到200k了;
  • 增加了 URI 相关的函数;
  • 项目中包含了压缩GBK编码表整套方案,方便自行优化,生成更小的库文件.

API

GBK.encode({string}) 解码GBK为一个字节数组

1
2
GBK.encode('时顺地?abc地')
> [ 202, 177, 203, 179, 181, 216, 63, 97, 98, 99, 181, 216 ]

GBK.decode({BbyteArry}) 解码GBK编码的字节数组 返回字符串

1
2
GBK.decode([ 202, 177, 203, 179, 181, 216, 63, 97, 98, 99, 181, 216 ])
> 时顺地?abc地;

URI相关函数

GBK.URI.encodeURI({String}) 转换规则和 encodeURI 函数一至

1
2
GBK.URI.encodeURI('https://abc.com/?kk=abv&bb=火车头#top')
> https://abc.com/?kk=abv&bb=%BB%F0%B3%B5%CD%B7#top

GBK.URI.decodeURI({String}) 转换规则和 decodeURI 函数一至

GBK.URI.encodeURIComponent({String}) 转换规则和 encodeURIComponent 函数一至

1
2
GBK.URI.encodeURIComponent('https://abc.com/?kk=abv&bb=火车头#top')
> https%3A%2F%2Fabc.com%2F%3Fkk%3Dabv%26bb%3D%BB%F0%B3%B5%CD%B7%23top

GBK.URI.decodeURIComponent({String}) 转换规则和 decodeURIComponent 函数一至