`
throwException
  • 浏览: 4028 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

base64转码

阅读更多

通过 URL 传递 base64 编码参数的问题

一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。但是对于带有中文的参数来说,这种编码会使编码后的字符串变得很长。如果希望有短一点的方式对参数编码,可以采用 base64 编码方式对字符串进行编码,但是 base64 编码方式不能处理 JavaScript 中的中文,因为 JavaScript 中的中文都是以 UTF-16 方式保存的。而 base64 只能处理单字节字符,所以不能直接用 base64 对带有中文的 JavaScript 字符串进行编码。但是可以通过 utf.js 这个程序中提供的 utf16to8 来将 UTF-16 编码的中文先转化为 UTF-8 方式,然后再进行 base64 编码。这样编码后的字符串,在传递到服务器端后可以直接通过 base64_decode 解码成 UTF-8 的中文字符串。但是还有个问题需要注意。base64 编码中使用了加号(+),而 + 在 URL 传递时会被当成空格,因此必须要将 base64 编码后的字符串中的加号替换成 %2B 才能当作 URL 参数进行传递。否则在服务器端解码后就会出错。

原来在编写 PHPRPC 1.1 的 JavaScript 客户端实现时,就是因为没有注意到这个问题,所以在传递中文参数时,有时候传递的参数正确,有时候参数在服务器端解码时就会出错。后来费了好大劲才发现是这个问题。

分享到:
评论

相关推荐

    Base64 转码小工具

    标题"Base64转码小工具"指出,这是一个专门用于Base64编码和解码的应用程序。这样的工具通常会有一个用户友好的界面,允许用户输入或粘贴Base64编码的字符串,然后点击按钮进行解码,或者输入原始文本进行编码。此外...

    base64转码解密成明文加密成Java密文

    本主题将深入探讨“Base64转码解密成明文”以及“Base64加密成Java密文”的过程,并介绍相关的Java实现。 首先,我们来看Base64解码。Base64编码的基本原理是将每3个字节的数据(24位)分成4组,每组6位,然后将这6...

    Base64转码工具

    Base64编码器Base64编码器Base64编码器Base64编码器Base64编码器Base64编码器

    base64转码器.zip

    在“base64转码器.zip”这个压缩包中,包含了一个名为"base64.exe"的可执行文件,这通常是一个Windows操作系统的应用程序,用于进行Base64的编码和解码操作。用户可以通过这个工具将文本或二进制文件转换为Base64...

    Objective-c Base64 转码

    综上所述,Objective-C中的NSString进行Base64转码主要是通过转换为NSData对象,再利用`NSData`的Base64方法进行处理。在不同iOS版本中,可能需要使用不同的API或第三方库来实现。了解这些知识有助于在实际开发中...

    cocos2d-x 3.X 接收图片 base64 转码显示

    以上就是关于“cocos2d-x 3.x 接收图片 base64 转码显示”的详细知识点,涵盖了从网络请求、Base64解码到图像显示的整个流程。在实际开发中,你可能还需要结合具体项目需求,考虑更多的细节和优化措施。

    base64转码工具

    在提供的"base64转码工具"中,可能包含以下功能: 1. **编码**:输入任意二进制数据,如图片、文档或其他非文本内容,工具会将其转换为Base64字符串。这个过程包括将二进制数据按每24位分组,对每个组进行编码,...

    Base64转码,AES加密解密,IOS,Android,Java

    Base64转码,AES加密解密,IOS,Android,Java 后台。 本工程可以直接使用,而且与IOS,Android,JAVA 已调通。 主要用于客户端进行通信,数据之间地安全性。对数据进行加密和解密。 适用于银行等较为保密的项目中。 ...

    在vue中使用Base64转码的案例

    在Vue项目中使用Base64转码,我们可以借助第三方库`js-base64`来实现。 首先,确保你的项目已经配置了Node.js环境,并且使用npm或cnpm管理依赖。为了在Vue项目中使用`js-base64`,你需要执行以下命令来安装这个库:...

    base64 转码

    在iOS和iPhone开发中,Base64转码尤其重要,因为它可以将图片转换为字符串格式,方便在网络请求中作为参数传递,或者存储在数据库中。 一、Base64编码原理 Base64编码的原理是将每3个字节(24位)的数据转换为4个...

    js对字符串进行base64转码/解码

    ### JavaScript中的Base64编码与解码 #### 一、Base64编码简介 Base64是一种基于64个字符的编码方式,被广泛应用于电子邮件、网页和其他需要将二进制数据转换为文本格式的场景中。由于互联网传输的数据通常需要以...

    bmp转jpg、文件base64转码、拍照上传、urlMon和ics流下载显示图片

    bmp转jpg、文件base64转码、拍照上传、urlMon和ics流下载显示图片。 编码base64、ics的httpget、http-post,urlmon的downloadfile、bmp转成jpg、拍照

    Base64 编码和解码

    Base64是一种常见的数据编码方式,它将任意的二进制数据转换成可打印的ASCII字符串,以便在网络上传输或者存储。在JavaScript中,Base64编码和解码是经常用到的功能,尤其是在处理图像、JSON数据或者进行跨平台通信...

    base64转码并格式化JSON串显示.html

    用于解析webservice服务端接收base64编码后的json串,base64解码格式化JSON串显示 html

    labview 图片缩放 base64编码base64解码

    在这个特定的场景中,我们关注的是如何在LabVIEW中处理图片,包括图片的缩放、Base64编码和解码。 1. **图片缩放**: 在LabVIEW中,你可以使用图像处理库来实现图片的缩放功能。这个库提供了各种图像操作函数,...

    批处理实现base64转换

    在本案例中,"批处理实现base64转换"指的是使用批处理文件来实现对文件或文本的Base64编码和解码功能。Base64是一种将任意二进制数据转化为ASCII字符串的编码方式,常用于在网络上传输二进制数据,因为HTTP协议只能...

    Base64引入包

    Base64是一种在网络上传输和存储二进制数据时常用的数据编码方式,它将二进制数据转换为可打印的ASCII字符序列。在Java中,Base64编码主要用于处理包含二进制数据的字符串,例如图片、PDF文档或加密密钥等。Base64...

Global site tag (gtag.js) - Google Analytics