标签: encode

base 64编码用于什么?

我听说有人在这里和那里谈论"base 64编码".它是干什么用的?

base64 encoding encode

729
推荐指数
16
解决办法
33万
查看次数

如何在Ruby中将字符串或整数转换为二进制?

如何创建整数0..9和数学运算符+ - */in到二进制字符串.例如:

 0 = 0000,
 1 = 0001, 
 ...
 9 = 1001
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用库的情况下使用Ruby 1.8.6执行此操作?

ruby binary encode

161
推荐指数
4
解决办法
11万
查看次数

UnicodeEncodeError:'charmap'编解码器无法编码 - 字符映射到<undefined>,打印功能

我正在编写一个Python(Python 3.3)程序,使用POST方法将一些数据发送到网页.主要用于调试过程我得到页面结果并使用print()函数在屏幕上显示它.

代码是这样的:

conn.request("POST", resource, params, headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()
print(data.decode('utf-8'));
Run Code Online (Sandbox Code Playgroud)

HTTPResponse .read()方法返回一个bytes编码页面的元素(这是一个结构良好的UTF-8文档)在我停止使用Windows的IDLE GUI并使用Windows控制台之前,这似乎没问题.返回的页面有一个U + 2014字符(em-dash),打印功能可以在Windows GUI中很好地转换(我假定代码页1252),但不在Windows控制台中(代码页850).鉴于strict默认行为,我收到以下错误:

UnicodeEncodeError: 'charmap' codec can't encode character '\u2014' in position 10248: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

我可以使用这个非常难看的代码修复它:

print(data.decode('utf-8').encode('cp850','replace').decode('cp850'))
Run Code Online (Sandbox Code Playgroud)

现在用一个替换有问题的字符" - " ?.不是理想的情况(连字符应该是一个更好的替代品),但足够我的目的.

我的解决方案中有几件我不喜欢的东西.

  1. 所有解码,编码和解码都是丑陋的代码.
  2. 它解决了这个案例的问题.如果我使用其他编码(latin-1,cp437,返回cp1252等)为系统移植程序,它应该识别目标编码.它不是.(例如,当再次使用IDLE GUI时,emdash也会丢失,之前没有发生过)
  3. 如果将emdash翻译成连字符而不是审讯爆炸会更好.

问题不在于emdash(我可以想到解决这个问题的几种方法),但我需要编写健壮的代码.我正在向页面提供来自数据库的数据,并且数据可以返回.我可以预见到许多其他相互矛盾的情况:'Á'U+ 00c1(在我的数据库中可能)可以转换为CP-850(西欧语言的DOS/Windows控制台编码)但不能转换为CP-437(美国的编码)英语,在许多Windows instalations中是默认的).

那么,问题是:

有没有更好的解决方案使我的代码与输出接口编码无关?

python encoding encode decode

149
推荐指数
5
解决办法
31万
查看次数

Base64 Java对字符串进行编码和解码

我想将一个字符串编码为base64并通过套接字传输并解码回来.但解码后它给出了不同的答案.以下是我的代码,结果是"77 + 9x6s ="

import javax.xml.bind.DatatypeConverter;

    public class f{

       public static void main(String a[]){

          String str = new String(DatatypeConverter.parseBase64Binary("user:123"));
          String res = DatatypeConverter.printBase64Binary(str.getBytes());
          System.out.println(res);
       }
    }
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一点的任何想法?

谢谢...

java base64 encode decode

149
推荐指数
6
解决办法
58万
查看次数

在Ruby中使用base64编码的字符串中的奇怪\n

Ruby中内置的Base64库正在添加一些'\n'.我无法找出原因.对于这个特例:

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'base64'
=> true
irb(main):003:0> str =  "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
=> "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
irb(main):004:0> Base64.encode64(str)
=> "MTExMC0tYWQ2Y2EwYjA2ZTFmYmViN2U2NTE4YTA0MThhNzNhNmUwNGE2NzA1\nNA==\n"
Run Code Online (Sandbox Code Playgroud)

\n是从结尾开始的最后一个位置和第六个位置.解码器(Base64.decode64)完美地返回旧字符串.奇怪的是,这些\n不会为编码字符串添加任何值.当我从输出字符串中删除换行符时,解码器会再次完美地对其进行解码.

irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true
Run Code Online (Sandbox Code Playgroud)

更多的是,我使用另一个JS库来生成相同输入字符串的base64编码输出,输出没有\n的.

这是一个错误还是其他什么?以前有人遇到过这个问题吗?

仅供参考,

$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
Run Code Online (Sandbox Code Playgroud)

ruby base64 encode

146
推荐指数
5
解决办法
5万
查看次数

PHP"漂亮的打印"json_encode

可能重复:
使用PHP进行漂亮的JSON打印

我正在编写一个创建JSON文件的脚本.现在我只是使用json_encode(PHP 5.2.x)将数组编码为JSON输出.然后我将返回的值打印到文件并保存.问题是客户端希望能够打开这些JSON文件以便于阅读,所以我想在其中添加换行符和"漂亮打印"JSON输出.关于如何做到这一点的任何想法?我唯一能看到的另一种选择是根本不使用json_encode,只需手动编写文件内容并为每一行添加自己的换行符.

这是我得到的:

{"product_name":"prod1","val1":1,"val2":8}
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

{
  "product_name":"prod1",
  "val1":1,
  "val2":8
}
Run Code Online (Sandbox Code Playgroud)

我想我也可以用命令后跟一个\n来替换每个逗号,对于括号也是如此...思考?

php json encode

136
推荐指数
3
解决办法
17万
查看次数

将int转换为ASCII并返回Python

我正在为我的网站制作一个URL缩短器,我当前的计划(我愿意接受建议)是使用节点ID来生成缩短的URL.因此,理论上,节点26可能是short.com/z,节点1可能是short.com/a,节点52可能是short.com/Z,节点104可能是short.com/ZZ.当用户访问该URL时,我需要反转该过程(显然).

我可以想到一些方法可以解决这个问题,但我猜测有更好的方法.有什么建议?

python ascii encode integer

123
推荐指数
5
解决办法
28万
查看次数

用于解码/编码修改后的base64 URL的代码

我想base64编码数据把它放在一个URL中,然后在我的HttpHandler中解码它.

我发现Base64编码允许使用'/'字符,这会弄乱我的UriTemplate匹配.然后我发现维基百科有一个"修改过的Base64 for URL"的概念:

存在修改的URL变体Base64,其中不使用填充'=',标准Base64的'+'和'/'字符分别替换为' - '和'_',因此使用URL编码器/解码器不再需要,并且对编码值的长度没有影响,保留相同的编码形式,以便在关系数据库,Web表单和对象标识符中使用.

使用.NET我想修改我当前的代码,从基本的base64编码和解码到使用"修改的base64 for URL"方法.有没有人这样做过?

为了解码,我知道它开头是这样的:

string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/');

// Append '=' char(s) if necessary - how best to do this?

// My normal base64 decoding now uses encodedText
Run Code Online (Sandbox Code Playgroud)

但是,我需要在结尾处添加一个或两个'='字符,这看起来有点复杂.

我的编码逻辑应该更简单一些:

// Perform normal base64 encoding
byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText);
string base64EncodedText = Convert.ToBase64String(encodedBytes);

// Apply URL variant
string base64UrlEncodedText = base64EncodedText.Replace("=", String.Empty).Replace('+', '-').Replace('/', '_');
Run Code Online (Sandbox Code Playgroud)

我已经看到Guid to Base64用于URL StackOverflow条目,但是它具有已知长度,因此它们可以硬编码最后所需的等号数.

c# url base64 encode decode

108
推荐指数
5
解决办法
9万
查看次数

Python Unicode编码错误

我正在阅读和解析Amazon XML文件,而XML文件显示',当我尝试打印它时,我收到以下错误:

'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128) 
Run Code Online (Sandbox Code Playgroud)

从我到目前为止在线阅读的内容来看,错误来自于XML文件是UTF-8,但Python希望将其作为ASCII编码字符处理.是否有一种简单的方法可以使错误消失并让我的程序在读取时打印XML?

python unicode ascii encode

100
推荐指数
3
解决办法
22万
查看次数

如何HTML编码/转义字符串?有内置的吗?

我有一个不受信任的字符串,我想在HTML页面中显示为文本.我需要以HTML实体的形式逃避字符' <'和' &'.越少越好.

我正在使用UTF8,并且不需要其他实体用于重音字母.

Ruby或Rails中是否有内置函数,或者我应该自己编写?

html ruby encode escaping ruby-on-rails

93
推荐指数
7
解决办法
14万
查看次数

标签 统计

encode ×10

base64 ×4

decode ×3

python ×3

ruby ×3

ascii ×2

encoding ×2

binary ×1

c# ×1

escaping ×1

html ×1

integer ×1

java ×1

json ×1

php ×1

ruby-on-rails ×1

unicode ×1

url ×1