标签: encode

JavaScript 中的 Unicode 和 URI 编码、解码和转义

如果您查看此处的此表,您会发现它有一个 Unicode 字符的转义序列列表,但实际上对我来说不起作用。

\n\n

例如,对于“%96”,它应该是 \xe2\x80\x93,我在尝试解码时收到错误:

\n\n
decodeURIComponent("%96");\nURIError: URI malformed\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我尝试编码“\xe2\x80\x93”,我实际上得到:

\n\n
encodeURIComponent("\xe2\x80\x93");\n"%E2%80%93"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在互联网上搜索,看到了这个页面,其中提到分别使用 escape 和 unescape 与decodeURIComponent和encodeURIComponent。这似乎没有帮助,因为无论我尝试什么,%96 都不会显示为“\xe2\x80\x93”,这当然是行不通的:

\n\n
decodeURIComponent(escape("%96));\n"%96"\n
Run Code Online (Sandbox Code Playgroud)\n\n

不是很有帮助。

\n\n

如何使用 JavaScript 将“%96”变为“\xe2\x80\x93”(无需为我可能遇到的每个可能的 unicode 字符硬编码映射)?

\n

javascript unicode encode urlencode utf-8

2
推荐指数
1
解决办法
8109
查看次数

正则表达式中的encodeURIComponent

我还有更多这样的 DIV:

<span class="date">Fri November 9, 2012</span>
Run Code Online (Sandbox Code Playgroud)

所有这些都在一个 var 中。例子:

var = '
...<span class="date">Fri November 9, 2012</span>...
...<span class="date">Fri November 9, 2012</span>...
';
Run Code Online (Sandbox Code Playgroud)

我尝试用包含该日期的图像替换每个日期。

我有这一行,但这不起作用:

ver = ver.replace(/<span class="date">(.*)<\/span>/g,'<span class="date"><img src="generateLink.php?nr='+encodeURIComponent($1)+'" /></span>');
Run Code Online (Sandbox Code Playgroud)

我的问题是:我不能在正则表达式中使用encodeURIComponent

javascript regex jquery encode replace

2
推荐指数
1
解决办法
1530
查看次数

PHP JSON 编码不起作用

这是我想要编码为 JSON 的数组的 var_dump:

array(3) { 
    [0]=> array(2) { 
        ["From"]=> string(14) "08 August 2013"
        ["To"]=> string(14) "21 August 2013"
    }
    [1]=> array(2) {
        ["From"]=> string(14) "11 August 2013"
        ["To"]=> string(14) "21 August 2013"
    }
    [2]=> array(2) { 
        ["From"]=> string(14) "12 August 2013" 
        ["To"]=> string(14) "01 August 2013" 
    } 
}
Run Code Online (Sandbox Code Playgroud)

当我对其进行编码时,输出如下所示:

[
 {"From":"08 August 2013","To":"21 August 2013"},
 {"From":"11 August 2013","To":"21 August 2013"},
 {"From":"12 August 2013","To":"01 August 2013"}
]
Run Code Online (Sandbox Code Playgroud)

但我希望它是这样的:

{
 0:{"From":"08 August 2013","To":"21 August 2013"}, 
 1:{"From":"11 August 2013","To":"21 August 2013"}, 
 2:{"From":"12 …
Run Code Online (Sandbox Code Playgroud)

php arrays json encode var-dump

2
推荐指数
1
解决办法
1万
查看次数

Vertica Python 读取结果抛出 UnicodeDecodeError

我只是在做一个数据库表的下拉并尝试将它读入python,如下所示:

with query(full_query_string) as cur: arr = cur.fetchall()

这会产生以下错误fetchall()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 4: invalid continuation byte

如果我select *收到此错误,而如果我限制为少量行,则不会收到此错误。我尝试在这个 SO post UnicodeDecodeError, invalid continuation byte之后用一些编码来支付但没有一个能做到这一点。在我不知道编码如何出错的大数据库表中,处理这个问题的最有效方法是什么?此外,没有特定的行是必须的,但我宁愿获得所有行,而不是有此编码问题的行。

python encode

2
推荐指数
1
解决办法
862
查看次数

“UCS-2”编解码器无法对位置 61-61 中的字符进行编码

当我运行 Python 代码并打印(项目)时,出现以下错误:

UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 61-61: Non-BMP character not supported in Tk
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def getUserFollowers(self, usernameId, maxid = ''):
    if maxid == '':
        return self.SendRequest('friendships/'+ str(usernameId) +'/followers/?rank_token='+ self.rank_token,l=2)
    else:
        return self.SendRequest('friendships/'+ str(usernameId) +'/followers/?rank_token='+ self.rank_token + '&max_id='+ str(maxid))
def getTotalFollowers(self,usernameId):
    followers = []
    next_max_id = ''
    while 1:
        self.getUserFollowers(usernameId,next_max_id)
        temp = self.LastJson

        for item in temp["users"]:
            print(item)
            followers.append(item)

        if temp["big_list"] == False:
            return followers            
        next_max_id = temp["next_max_id"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

python unicode json encode

2
推荐指数
1
解决办法
3749
查看次数

RestTemplate.exchange() 不编码“+”?

RestTemplate.exchange()将编码的URL都无效字符,但不+作为+是有效的URL字符。但是如何+在任何 URL 的查询参数中传递 a ?

java url spring encode spring-boot

2
推荐指数
1
解决办法
5489
查看次数

如何解码包含无效字节的字节对象,Python3

在python2中,我可以整天生成以字符串格式表示的这些十六进制字节 '\x00\xaa\xff'

>>>’00'.decode('hex') + 'aa'.decode('hex') + 'ff'.decode('hex')
>>>'\x00\xaa\xff'
Run Code Online (Sandbox Code Playgroud)

同样,我可以在 python3 中做到这一点

>>> bytes.fromhex(’00’) + bytes.fromhex(‘aa’) + bytes.fromhex(‘ff’)
>>>b'\x00\xaa\xff'
Run Code Online (Sandbox Code Playgroud)

根据py2->py3这里的变化

Python 3.0 使用文本和(二进制)数据的概念,而不是 Unicode 字符串和 8 位字符串。所有文本都是Unicode;但是编码后的 Unicode 表示为二进制数据。

所以 Py2 版本的输出是一个字符串,而 Py3 版本的输出是字节类型的二进制数据

但我真的需要一个字符串版本!

根据上述文档:

由于 str 和 bytes 类型不能混合使用,您必须始终在它们之间进行显式转换。使用 str.encode() 从 str 转到 bytes,使用 bytes.decode() 从 bytes 转到 str。您还可以分别使用 bytes(s, encoding=...) 和 str(b, encoding=...) 。

好的,现在我必须解码这个字节类型的二进制数据......

>>> b'\x00\xaa\xff'.decode()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xaa in …
Run Code Online (Sandbox Code Playgroud)

string encode decode python-3.x

2
推荐指数
1
解决办法
2785
查看次数

如何在 Python 中转换带有特殊字符的字符串变量以正确打印

对不起,如果标题令人困惑,但我已经研究了两个小时,并且不知道我应该如何问这个问题,所以任何人都可以随意编辑这篇文章。

我有这个字符串变量,我使用网络抓取创建了它,它使用特殊字符,看起来像“\ud83d\ude00\u0107\u00e7\n hello”,打印时没有引号。问题是我希望它打印实际的特殊字符,但我不确定应该使用哪种编码方法。如果我复制并粘贴确切的字符串并打印它,它工作正常,但作为我创建的变量,它不显示特殊字符,只显示文本。

我曾尝试使用 json.load、unicode-escape、UTF-8 和其他一些方法将其转换为字符串,但老实说我不确定我应该使用什么方法

page = requests.get('https://www.example.com')
soup = str(BeautifulSoup(page.text, 'html.parser')).splitlines()

for line in soup:
    if 'hello' in line:
        print(line) #produces literal text of \ud83d\ude00\u0107\u00e7 \n hello

print('\ud83d\ude00\u0107\u00e7 \n hello') #produces wanted result
Run Code Online (Sandbox Code Playgroud)

我希望结果看起来像这样:

?C

你好

python encode escaping beautifulsoup special-characters

2
推荐指数
1
解决办法
5236
查看次数

解码 websocket 接收到的数据

我正在开发我自己的网站项目,我需要使用 websocket 从目标站点抓取数据。数据是货币和股票价格变动的实时馈送或滴答。我得到以下格式的输出。

试穿http://websocket.org/echo.html

地点: wss://streamer.finance.yahoo.com/

单击连接。

信息: {"subscribe":["AMZN"]}

输出:

CONNECTED

SENT: {"subscribe":["AMZN"]}

RECEIVED: CgRBTVpOFaQY3EQY4Kn0/99bKgNOTVMwCDgBRYjKzDxIyvN9ZQBQ4T7YAQQ=

RECEIVED: CgRBTVpOFaQY3EQY4Kn0/99bKgNOTVMwCDgBRYnKzDxIzPV9ZQBQ4T7YAQQ=

RECEIVED: CgRBTVpOFT0a3EQYsLn0/99bKgNOTVMwCDgBRYMG5DxIkP99ZQDg+j7YAQQ=

RECEIVED: CgRBTVpOFQAY3EQYwIf1/99bKgNOTVMwCDgBRYd5wzxIxod+ZQAQ1z7YAQQ=

RECEIVED: CgRBTVpOFQAY3EQYwIf1/99bKgNOTVMwCDgBRYd5wzxIroh+ZQAQ1z7YAQQ=

RECEIVED: CgRBTVpOFRQS3EQY8PT1/99bKgNOTVMwCDgBRYC1WjxIhI5+ZQCgcD7YAQQ=

RECEIVED: CgRBTVpOFRQS3EQY8PT1/99bKgNOTVMwCDgBRYG1WjxImo5+ZQCgcD7YAQQ=

RECEIVED: CgRBTVpOFUgN3EQY4KP2/99bKgNOTVMwCDgBRSBhnjtIvpJ+ZQBArj3YAQQ=

RECEIVED: CgRBTVpOFUgN3EQY4KP2/99bKgNOTVMwCDgBRSBhnjtI9J1+ZQBArj3YAQQ=

RECEIVED: CgRBTVpOFUgN3EQY4KP2/99bKgNOTVMwCDgBRSBhnjtIsqR+ZQBArj3YAQQ=

RECEIVED: CgRBTVpOFUgN3EQY4KP2/99bKgNOTVMwCDgBRSBhnjtInq5+ZQBArj3YAQQ=
Run Code Online (Sandbox Code Playgroud)

我不知道如何解码或它是什么类型的加密。谁能告诉我如何解码它的编码/解码类型是什么?我将使用 PHP 进行解码(如果可以解码)。

encryption encode decode protocol-buffers websocket

2
推荐指数
1
解决办法
1934
查看次数

在 bash 中使用 qrencode 和 zbarimg 编码/解码二维码中的二进制数据

我有一些二进制数据,我想用二维码编码,然后能够解码,所有这些都在 bash 中。搜索后,看起来我应该qrencode用于编码和zbarimg解码。经过一些故障排除后,我仍然无法解码我编码的内容

知道为什么吗?目前我最接近解决方案的是:

$ dd if=/dev/urandom bs=10 count=1 status=none > data.bin
$ xxd data.bin
00000000: b255 f625 1cf7 a051 3d07                 .U.%...Q=.
$ cat data.bin | qrencode -l H -8 -o data.png
$ zbarimg --raw --quiet data.png | xxd
00000000: c2b2 55c3 b625 1cc3 b7c2 a051 3d07 0a    ..U..%.....Q=..
Run Code Online (Sandbox Code Playgroud)

看起来我不是很远,但仍然有一些东西。

编辑 1:一个可能的解决方法是使用 base64 包装,如@leagris 的回答中所述。

编辑 2:使用 base64 编码使消息的大小加倍。我首先使用二进制文件的原因是为了节省大小,所以我想避免这种情况。不接受@leagris 的答案,因为我希望它是“完整的二进制文件”,抱歉。

编辑 3:截至 2020 年3 月 3 日,这似乎是一个众所周知的问题,zbarimg解决此问题的拉取请求正在进行中:

https://github.com/mchehab/zbar/pull/64

编辑 …

binary bash encode decode qr-code

2
推荐指数
1
解决办法
5002
查看次数