Unicode 如何编码为base64非ASCII字符?
有人能给我解释一下如何将字符串“®”编码为base64(我只是选择了任何非ASCII字符作为示例)?此字符表示二进制代码174或10101110 结果是“wq4=”(这是通过检查两个在线执行base64编码的不同网站获得的) 我了解base64编码系统的工作原理。对于ASCII字符,我可以得到正确的结果,但对于任何非ASCII字符,结果都不匹配 我试过两种方法:Unicode 如何编码为base64非ASCII字符?,unicode,encoding,base64,ascii,Unicode,Encoding,Base64,Ascii,有人能给我解释一下如何将字符串“®”编码为base64(我只是选择了任何非ASCII字符作为示例)?此字符表示二进制代码174或10101110 结果是“wq4=”(这是通过检查两个在线执行base64编码的不同网站获得的) 我了解base64编码系统的工作原理。对于ASCII字符,我可以得到正确的结果,但对于任何非ASCII字符,结果都不匹配 我试过两种方法: 直接使用这个字符(10101110)的二进制文件,并将其拆分为两个6位的块:101011和100000。对于base64,它们对应于“
有人知道我做错了什么吗?Base64将二进制数据编码为ASCII文本。在应用Base64之前,可以使用任何编码对Unicode字符进行编码,但UTF-8很方便,因为它可以对任何Unicode码点进行编码 问题中的错误是转换为UTF-8。位从右到左首先分配最低有效位,但从左到右首先分配最高有效位
®
的Unicode代码点开始,即U+00AE
10101110
110xxxxx 10xxxxxx
。按如下方式分配位:11000010 10101110110000 101010 111000
48 42 56
wq4=
Value Encoding Value Encoding Value Encoding Value Encoding
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y