`

base64encode的一个问题

 
阅读更多

之前写程序把base64encode的数据提交到服务器,服务器端出现数据的+号被替换为空格的情况。

查了w3规范手册,原因是如下的编码规范中说的,所以服务器会在解码时把+号改为空格然后给到业务。

所以最好再做个urlencode/urldecode

 

参考:http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1

 

application/x-www-form-urlencoded  

This is the default content type. Forms submitted with this content type must be encoded as follows:

  1. Control names and values are escaped. Space characters are replaced by `+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by `%HH', a percent sign and two hexadecimal digits representing the ASCII code of the character. Line breaks are represented as "CR LF" pairs (i.e., `%0D%0A').
  2. The control names/values are listed in the order they appear in the document. The name is separated from the value by `=' and name/value pairs are separated from each other by `&'.
分享到:
评论

相关推荐

    JS 版本的base64函数实现(base64encode,base64decode)

    用js实现的base64encode,base64decode函数. 包括: function base64encode(str) { function base64decode(str) { function utf16to8(str) { function utf8to16(str) { function doit() {

    base64encode.js

    base64编码解码工具,方便日常中JS开发.

    JavaScript版的PHP函数base64_encode与base64_decode

    用JavaScript实现PHP里的Base64编码与解码。 使用方法: encode64('要编码的字符串'); decode64('要解码的字符串');

    delphi2010 base64_encode&decode

    Base64编码的基本原理是将每3个字节的二进制数据转换成4个6位的十六进制数字,然后将这4个十六进制数字表示成64个可打印ASCII字符中的一个。这样,任何二进制数据都可以转化为一系列的Base64字符,而这些字符在...

    base64 encode 中文版

    1. **字符集**:Base64编码使用了一个包含65个字符的子集,这些字符来自US-ASCII字符集,其中第65个字符“=”用于特殊用途,即表示填充。 2. **编码过程**: - 每次输入24位数据,即三个8位字节。 - 将这三个字节...

    BASE64Encode编码,jar包(源代码打包)

    BASE64Encode 编码,在andorid没有这个编码,这里面有打成jar包,可以导进去。用源代码打包的。手懒不愿意自己弄得话,可以下载导进去。里面附带着源代码,也可将源代码开进去直接使用,希望能帮助大家。

    Base64Encode for delphi

    Base64Encode for delphi , Base64Encode for delphi

    Base64 Encode编码实现1x1px透明(黑白)图片

    我们都知道图片有一个base64编码,可以将你的图标变成代码的方式 现在的无线淘宝应用往往都是采用这种方式 今天特意将一个小的透明的图片压缩后代码提供给大家使用 使用方法: 附件中图片src指向的代码直接...

    易语言汇编base64编码

    Base64编码的基本原理是将每3个8位字节(24位)的数据转换成4个6位的十六进制数字,每个6位对应一个字符,这些字符来自于Base64的字符集,包括大小写字母、数字以及"+"和"/",末尾不足四位的数据用"="进行填充。...

    base64encode封装加密解密

    在本主题中,“base64encode封装加密解密”指的是一个编程实现,它提供了一种方便的方式来对数据进行Base64编码和解码,同时也可能包含了加密和解密的功能。 Base64编码的基本原理是将每3个字节的数据(24位)分为4...

    base64 encode/decode

    在这个场景中,我们关注的是一个名为"Base64.hpp"的文件,这很可能是一个C++库,用于实现Base64的编码和解码功能。 Base64编码的基本原理是将每3个字节(24位)的数据块转换为4个6位的“字母数字”值,这些值在Base...

    labview 图片缩放 base64编码base64解码

    通常,你需要选择一个原始图像,然后指定新的尺寸,LabVIEW会使用插值算法(如最近邻或双线性插值)来保持图像质量。通过这种方法,你可以将大图片缩小,或者将小图片放大以适应不同的显示或存储需求。 2. **Base64...

    base64_encode and urlencode

    `base64_encode`是一种基于64个可打印字符来表示二进制数据的编码方式。它的基本原理是将每3个字节的数据转换为4个6位的字符,这样可以确保任何二进制数据都能被转换为ASCII字符串,便于在网络上传输或存储在文本...

    sun.misc.BASE64Decoder(Android Base64Jar包以及Java源代码)

    sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及Java源代码 sun.misc.BASE64Decoder 其中包括 Android Base64Jar包 以及...

    base64encode:Base64字符串编码模块

    这是一个[Node.js]( )模块,可从[npm Registry]( )获得。 $ npm install base64encode1 --save const base64encode = require ( 'base64encode1' ) ; const text = "Hello World !" ; console . log ( base64...

    sun.misc.BASE64Encoder源码及jar包

    `sun.misc.BASE64Encoder`类提供了Base64编码的功能,它包含一个`encode`方法,可以接受字节数组并返回Base64编码的字符串。此外,还有一个`encodeBuffer`方法,用于处理较大的数据块。需要注意的是,由于`sun.misc`...

    BASE64Encoder及BASE64Decoder的源码

    由于6位只能表示64个不同的值,因此Base64字符集包含64个字符,这些字符通常包括大小写字母、数字以及"+"和"/",最后还有一个等于号("=")用于填充不足的位。 Base64Encoder的工作流程如下: 1. 接收二进制数据。 2....

    javascript gbk 编码 的Base64.zip

    例如,要将一个GBK编码的字符串转换为Base64,我们可以这样做: ```javascript // Node.js环境下 const iconv = require('iconv-lite'); // 引入iconv-lite库,用于GBK编码/解码 const str = '你好,世界'; const ...

    base64encoder jar包

    Base64是一种在网络上传输二进制数据时常用的编码方式,它将任意的二进制数据分割成三字节一组,然后将每组数据映射到64个可打印字符之一,形成一个等长的ASCII字符串。这样做的好处是,Base64编码后的字符串可以...

    微信小程序base64加解密

    在微信小程序中,我们可能需要对敏感信息进行加密处理,Base64就成为了一个简单实用的工具。本篇将详细介绍微信小程序中的Base64加解密以及相关的使用方法。 Base64是一种基于64个可打印字符来表示二进制数据的编码...

Global site tag (gtag.js) - Google Analytics