遇到的一个关于base64编码的小问题
2017-04-02 23:18
190 查看
前两天在写一个小的web service工具,遇到了一个问题。
当时在用node.js,想要调用python的一个服务,python的service是用了grpc,看了一下文档,node.js是支持grpc的,但是样例只给了同语言的调用,不知道node.js能不能调python。
当时在用node.js,想要调用python的一个服务,python的service是用了grpc,看了一下文档,node.js是支持grpc的,但是样例只给了同语言的调用,不知道node.js能不能调python。
后来仔细一想,这东西如果不能调,写个protobuf的意义就不大了,所以果断写一发。结果写完了发现个很蛋疼的问题,用js穿了个字符串给python,但是python那边拿到的字符串乱码了,而且怎么看都不像是一个正常的编码。
研究了半天也搞不定,后来实在没办法,写了一个node.js的server,看看js互相调用是否有问题,结果发现还是乱码,但js的乱码和python不一样,后来发现,拿到的字符串用base64解码就可以用了。但这对于python那边的状况还是无法解释,经同事的提醒,发字符串的时候,用base64编码一下就可以了。
这让我很疑惑,为什么base64编码就行了?查了一下,base64主要是为了将不可见字符转换成可见字符,据说由于历史原因,传输信道只支持ASCII字符,如果有非ASCII字符,就容易出现各种奇怪的问题。base64的原理也很简单,就是把3个8位bit转化为4个6位bit保存,每个6位bit高位补零,这样增加了信息的体积,也减小了字符的范围。这东西还是挺有用的, 学习了,不过我发的串里并没有非ASCII字符啊!
相关文章推荐
- 遇到一个关于ObjectDataSource的奇怪问题
- 由一个朋友遇到的问题想到的关于程序的架构
- 关于XML数据存储时遇到的字符编码的一个怪问题
- 遇到关于strtok的一个问题,郁闷了好一会儿终于找到答案
- 前几天遇到的一个面试题,关于中文字符截取的问题。IO流的应用
- 由一个朋友遇到的问题想到的关于程序的架构
- 遇到的一个关于printf()的小问题。
- 最近写一个C#关于U盘的操作,在弹出U盘是遇到了些问题,C#调WINdoWs底层的东西太麻烦了,看样子要看看VC或C了
- 今天遇到的几个关于编码的问题
- 遇到的一个关于NULL小问题,请大家帮忙看下,求个解释
- 关于在UTF-8编码下使用ASPUPLOAD组件时遇到的问题
- 关于Base64的编码问题
- 最近遇到一个非常棘手的需求是关于邮件转发的问题,请大家来帮忙给出出主意如何实现。
- 关于创建一个输入端和两个输出端遇到问题的解决
- 今天遇到一个关于STL中排序的问题, 怀疑是sort的bug!
- 一个关于SQL的问题,做做看,好想跟经常遇到的有点不同
- 今天遇到的一个关于HttpSessionListener 的一个问题
- 关于加载设计器遇到一个或多个错误问题的解决方案
- 工作中遇到的一个相当有意思的问题(关于Windows和linux环境下执行PHP,ajax,javascript,flexigrid的一个莫名异常)
- 遇到一个关于静态成员函数的问题