我有一个字符串“我正在使用一些字符串,但 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\nRun 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)