Tag: 编码

如何在Python中对URL参数进行百分比编码?

如果我做 url = "http://example.com?p=" + urllib.quote(query) 它不编码/到%2F (打破OAuth标准化) 它不处理Unicode(它抛出一个exception) 有更好的图书馆吗?

一个Unicode字符需要多less个字节?

我对编码有点困惑。 据我所知旧的ASCII字符每个字符一个字节。 Unicode字符需要多less个字节? 我假设一个Unicode字符可以包含来自任何语言的每个可能的字符 – 我是否正确? 那么每个字符需要多less字节? 而UTF-7,UTF-6,UTF-16等是什么意思? 他们是不同版本的Unicode? 我读了维基百科关于Unicode的文章,但对我来说很难。 我期待着看到一个简单的答案。

二进制到Java中的文本

我有一个带有二进制数据的string(1110100)我想把文本拿出来打印出来(1110100会打印“t”)。 我试过这个,它和我用来把文本转换成二进制文件的类似,但是根本不工作: public static String toText(String info)throws UnsupportedEncodingException{ byte[] encoded = info.getBytes(); String text = new String(encoded, "UTF-8"); System.out.println("print: "+text); return text; } 任何更正或build议将不胜感激。 谢谢!

什么是Java的String的内部表示? 修改UTF-8? UTF-16?

我search了Java的内部表示string,但我有两个看起来可靠但不一致的材料。 一个是: http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article.php/c10451 它说: Java使用UTF-16作为内部文本表示,并支持对string序列化的UTF-8进行非标准修改。 另一个是: http://en.wikipedia.org/wiki/UTF-8#Modified_UTF-8 它说: 对于Unicode数据的内部表示,Tcl也使用与Java相同的修改过的UTF-8 [25],但对外部数据使用严格的CESU-8。 修改UTF-8? 或者UTF-16? 哪一个是正确的? Java在内存中使用了多less个字节? 请让我知道哪一个是正确的,它使用多less字节。

url和加号

我知道一个URL的查询string中的+代表一个空格。 这也是查询string区域之外的情况吗? 也就是说,做下面的url: http://a.com/a+b/c 实际上代表: http://a.com/ab/c (因此需要编码,如果它应该实际上是+ ),或者它实际上是否代表a+b/c ?

Python 3,让json对象接受字节或让urlopen输出string

与Python3我要求从一些URL一个JSON文件。 response = urllib.request.urlopen(request) response对象是一个类似read,readline函数的对象。 通常情况下,一个JSON对象可以创build一个文件(以textmode打开) obj = json.load(fp) 我想要做的是: obj = json.load(response) 但是这不起作用,因为urlopen以二进制模式返回文件对象。 解决方法当然是: str_response = response.readall().decode('utf-8') obj = json.loads(str_response) 但是这感觉很糟糕… 有没有更好的方法,我可以将字节文件对象转换为string文件对象? 或者我错过任何urlopen或json.load参数给一个编码? 这在我看来是一个常见的用例,所以我相信我错过了一些有用的function。

ruby 1.9:UTF-8中无效的字节序列

我在Ruby(1.9)中编写一个爬取器,从大量的随机站点中消耗大量的HTML。 当试图提取链接时,我决定只使用.scan(/href="(.*?)"/i)而不是nokogiri / hpricot(主要加速)。 问题是我现在收到很多“ invalid byte sequence in UTF-8 ”错误。 从我的理解, net/http库没有任何编码特定的选项,进来的东西基本上没有正确标记。 实际使用传入数据的最佳方式是什么? 我尝试使用replace和无效的选项设置.encode ,但目前为止没有成功…

如何在node.js中执行Base64编码?

node.js是否有内build的base64编码呢? 我问这个问题的原因是crypto final()只能输出hex,二进制或ASCII数据。 例如: var cipher = crypto.createCipheriv('des-ede3-cbc', encryption_key, iv); var ciph = cipher.update(plaintext, 'utf8', 'hex'); ciph += cipher.final('hex'); var decipher = crypto.createDecipheriv('des-ede3-cbc', encryption_key, iv); var txt = decipher.update(ciph, 'hex', 'utf8'); txt += decipher.final('utf8'); 根据文档, update()可以输出base64编码的数据。 但是, final()不支持base64。 我试了,它会打破。 如果我这样做: var ciph = cipher.update(plaintext, 'utf8', 'base64'); ciph += cipher.final('hex'); 那我应该用什么来解密? hex或base64? 因此,我正在寻找一个函数来base64编码我的encryptionhex输出。 谢谢。

如何在Android设备上将WAV编码为mp3

我已经简化了我的问题,并提供了一个赏金:有什么select压缩原始PCMaudio数据到Android设备上的MP3。 我原来的post:我在我的Android手机上创build了一个合成器,我一直在生成PCM数据发送给扬声器。 现在我想知道如果我可以将这个PCM数据编码为一个MP3保存到SD卡。 MediaRecorder对象可以将来自麦克风的audio编码为各种格式,但不允许以编程方式生成的audio数据进行编码。 所以我的问题是,是否有一个标准的Android API编码audio? 如果不是,那么纯粹的基于Java或NDK的解决scheme在那里? 你能推荐他们吗? 如果没有这个,我只需要将我生成的audio保存为一个WAV文件,我可以轻松完成。

用一个空格replace非ASCII字符

我需要用空格replace所有非ASCII(\ x00- \ x7F)字符。 我很惊讶,这不是在python死容易,除非我失去了一些东西。 以下function只是删除所有非ASCII字符: def remove_non_ascii_1(text): return ''.join(i for i in text if ord(i)<128) 而这个字符代码点中的字节数(即–字符被replace为3个空格)用空格的数量replace非ASCII字符: def remove_non_ascii_2(text): return re.sub(r'[^\x00-\x7F]',' ', text) 我怎样才能用一个空格replace所有的非ASCII字符? 在 大量 类似的 SO 问题中 , 没有一个 解决了 与 剥离 相反的 字符 replace 问题 ,另外还解决了所有非ASCII字符不是特定字符的问题。