我有一个字符串“我正在使用一些字符串,但 Poacher\u2019s 显示 unicode!” 我正在尝试将 Unicode 转换为 ' 字符。
我试图通过标准 python 库解码 base64 多行文件,但是只有第一行被解码,其余的被无缘无故地转储。
为什么是这样?
编码之前的文件(解码后我试图实现的目标):
数据文件.dat
版本:BenWin+ 版本:3.0.12.1[CR]
[CR][LF]
创建时间:2016 年 9 月 1 日 12:56:27 PM[CR]
[CR][LF]
时间代码:0x907e0、0x10004、0x38000c、0x242001b[CR]
[CR][LF]
...
[CR]和[LF]分别是回车符(\r)和换行符(\n)的字符代码
我使用 base64.b64encode 对文件进行 Base64 编码,并希望稍后对其进行解码。这是我的代码片段。
encodedData = b'VkVSU0lPTjogQmVuV2luKyBWZXJzaW9uOiAzLjAuMTIuMQo=Cg==Q1JFQVRFRDogMDEgU2VwdGVtYmVyIDIwMTYgMTI6NTY6MjcgUE0KCg==VElNRSBDT0RFOiAweDkwN2UwLCAweDEwMDA0LCAweDM4MDAwYywgMHgyNDIwMDFiCg==Cg=='
data = base64.b64decode(encodedData)
print(data)
Run Code Online (Sandbox Code Playgroud)
哪个返回
b'版本:BenWin+ 版本:3.0.12.1\n'
提前致谢。使用Python 3.5
Python 3 中是否有任何方法可以替换英文字母的通用语言特定字符?
例如,我有 function get_city(IP)
,它返回与给定 IP 连接的城市名称。它连接到外部数据库,所以我不能改变它的编码方式,我只是从数据库中获取价值。
我想做类似的事情:
city = "?eské Bud?jovice"
city = clear_name(city)
print(city) #should return "Ceske Budejovice"
Run Code Online (Sandbox Code Playgroud)
在这里我使用捷克语,但总的来说它应该适用于任何非亚洲语言。
我有这个网址:
"http://www.somedomain.com/folder/????? ????????.jpg"
Run Code Online (Sandbox Code Playgroud)
所以我需要转义这些阿拉伯值,否则它将无法创建URL
对象。
我是这样做的,
let originalString = "http://www.somedomain.com/folder/????? ????????.jpg"
let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
Run Code Online (Sandbox Code Playgroud)
这将是以下输出escapedString
:
http://www.somedomain.com/folder/%D9%85%D8%B1%D8%AD%D8%A8%D8%A7%20%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85.jpg
到现在为止还挺好。但是当我强制尝试转义已经转义的 URL 时,结果很奇怪。
如何检查字符串是否已被编码?
我试图解码我成功编码的 utf-8 字符串,但无法弄清楚如何解码它......实际上它解码得很好,但我只想将它连接起来:
b = base64.b64decode(a).decode("utf-8", "ignore")
print('Decoding:'+b)
Run Code Online (Sandbox Code Playgroud)
就像我通过编码所做的那样
a = str(base64.b64encode(bytes('hasni zinda ha u are my man boy yes u are ', "utf-8")))
print('Encoding :'+a)
Run Code Online (Sandbox Code Playgroud)
每当我尝试以我想要的方式进行操作时,都会出现以下错误:
File "C:/Users/…/python/first.py", line 8, in <module>
b = base64.b64decode(a).decode("utf-8", "ignore")
File "C:\Users\…\AppData\Local\Programs\Python\Python36-32\lib\base64.py", line 87, in b64decode
return binascii.a2b_base64(s) binascii.Error: Incorrect padding
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决它吗?
我的"Theres loads of adventures to be had here;\nYou'll get your own Kobémon\nand get to catch more!"
.JSON 文件中有一个这样的字符串 ( ),当我从它读取到 python 文件和 Tkinter 文本框时,我得到"é"
而不是é
. 有没有办法阻止这种情况。我使用这个阅读 .JSON :(self.Lines = json.load(open("Data/Lines.json")))
我有一个这样的变量:
\n\n>>> s = \'\\\\320\\\\227\\\\320\\\\264\\\\320\\\\260\\\\320\\\\275\\\\320\\\\270\\\\320\\\\265 \\\\320\\\\261\\\\321\\\\213\\\\320\\\\262\\\\321\\\\210\\\\320\\\\265\\\\320\\\\271\'\n>>> print(s)\n\\320\\227\\320\\264\\320\\260\\320\\275\\320\\270\\320\\265 \\320\\261\\321\\213\\320\\262\\321\\210\\320\\265\\320\\271\n
Run Code Online (Sandbox Code Playgroud)\n\n这包含字符串“\xd0\x97\xd0\xb4\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5\xd0\xb1\xd1\x8b\xd0”的UTF-8编码的八进制转义表示\xb2\xd1\x88\xd0\xb5\xd0\xb9"(八进制320 227
=十六进制D0 97
= UTF-8 表示“\xd0\x97”)。如何将此字符串解码为“\xd0\x97\xd0\xb4\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5\xd0\xb1\xd1\x8b\xd0\xb2\xd1\x88\xd0 \xb5\xd0\xb9"?
我想要一个可以通过普通 Codable 协议或字典实例化的结构(现有代码需要字典实例化)。
我在操场上有这个代码,但我不确定在我的第二个需要字典的初始化中做什么。如何从字典中制作解码器对象?
import Foundation
public protocol Parsable: Decodable {
init(dict: [String: Any]) throws
}
struct LinkModel: Parsable {
var href: String
var text: String
init(dict: [String: Any]) throws {
href = "/store/options.aspx"
text = "Buy"
}
}
struct ResponseModel: Parsable {
var link: LinkModel?
let showCell: Bool
enum CodingKeys : String, CodingKey {
case link
case showCell = "show"
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let linkResponses = try container.decode([LinkModel].self, forKey: .link) …
Run Code Online (Sandbox Code Playgroud) 我对 elm 还很陌生,并且遇到了使用后端数据填充模型的问题。我目前可以向服务器发出 get 请求,该请求返回一个 byte[] (数据是任何类型的图像、音频或视频),当仅通过 Html.img 显示此数据时,它可以正常工作。当我尝试使用 Http.get (src: https: //package.elm-lang.org/packages/elm/http/latest/Http)来填充我的模型时,它需要解码器。问题是,Bytes.Decode.bytes 需要一个 Int 来知道需要解码多少字节。所以我的问题是:有没有什么方法可以访问字节宽度,同时仍然匹配 Http.get 的类型模式?
这是我的问题的一个简单示例:
import Bytes exposing (Bytes)
import Bytes.Decode exposing (Decoder, bytes, decode)
import GeneralTypes exposing (Msg(..))
import Http
getMediaFromUrl : Cmd Msg
getMediaFromUrl = Http.get
{ url = "http://localhost:8090/image/2006/aa@a.de/session"
, expect = Http.expectBytes GetThumbnail decodeBytes
}
decodeBytes: Bytes.Bytes -> Decoder Bytes
decodeBytes bytesToDecode= let
fileSize =
bytesToDecode |> Bytes.width
in
Bytes.Decode.bytes fileSize
Run Code Online (Sandbox Code Playgroud)
module GeneralTypes exposing (..)
import Bytes exposing (Bytes)
import Http …
Run Code Online (Sandbox Code Playgroud) 我在从 Yahoo 帐户转发的电子邮件生成的 PHP 中遇到以下错误:
注意:未知:无效的引用打印序列:=?UTF-8?Q?ck-off with Weekly Sale up to 90% off (errflg=3) in Unknown on line 0
我花了几个小时研究这个问题,并决定在电子邮件中向自己发送完全相同的输出字符串,而无需 Yahoo 参与。正确解码的原始 q 编码文本:
=?UTF-8?Q?GOG_Forward=3A_Fw=3A_=F0=9F=98=89_A_great_Monday_kick-?= =?UTF-8?Q?off_with_Weekly_Sale_up_to_90=25_off?=
来自雅虎的畸形 q 编码文本:
=?UTF-8?Q?GOG_Forward =?UTF-8?Q?ck-off_with_Weekly_Sale_up_to_90%_off?=
解码时的正确字符串:
GOG Forward:Fw:周一开球很棒,每周折扣高达 90%
Roundcube 设法解码正常和格式错误的文本,尽管我不确定如何和 25兆字节有点难以挖掘,我什至无法确定他们在哪里解码主题标题。
如何修复 Yahoo 格式错误的 q 编码版本?
<?php
//These fail:
echo imap_mime_header_decode($mail_message_headers['Subject']);
echo quoted_printable_decode($mail_message_headers['Subject']);
?>
Run Code Online (Sandbox Code Playgroud)
为了澄清起见, imap_fetchstructure页面澄清了4
编码的值是Quoted-Printable
/ ENCQUOTEDPRINTABLE
。
事实证明,由于某种原因,雅虎为同一个标题发送了两次主题,一个格式不正确,另一个没有。这是原始电子邮件的Subject
标题:
Subject: =?UTF-8?Q?GOG_Forward:_Fw:_=F0=9F=98=89_A_great_Monday_ki?=
=?UTF-8?Q?ck-off_with_Weekly_Sale_up_to_90%_off?=
MIME-Version: 1.0
Run Code Online (Sandbox Code Playgroud)