我的目标是创建一个方法,该方法采用两个带有特殊字符的字符串并正确比较它们。我正在努力理解字符编码的逻辑。
所以,我的字符串看起来像:
黑泽尔 - 这个女孩在看着我
我有这个字符串的两个副本。一个是通过第三方 API 通过 $.ajax() 提供给我的,另一个是来自我的服务器的反序列化,也使用 $.ajax()。
我的原始字符串,当表示为字符代码时,看起来像:
Array[33]
0: 72
1: 97
2: 776
3: 122
4: 101
5: 108
6: 32
7: 45
8: 32
9: 84
10: 104
11: 105
12: 115
13: 32
14: 71
15: 105
16: 114
17: 108
18: 32
19: 73
20: 115
21: 32
22: 87
23: 97
24: 116
25: 99
26: 104
27: 105
28: 110
29: 103
30: 32
31: 77
32: 101
之后:
Array[32]
0: 72
1: 228
2: 122
3: 101
4: 108
5: 32
6: 45
7: 32
8: 84
9: 104
10: 105
11: 115
12: 32
13: 71
14: 105
15: 114
16: 108
17: 32
18: 73
19: 115
20: 32
21: 87
22: 97
23: 116
24: 99
25: 104
26: 105
27: 110
28: 103
29: 32
30: 77
31: 101
不同之处在于“ä”在序列化之前表示为 [97, 776],在序列化之后表示为 [228]。
我想知道几件事:
- 从这些信息中是否清楚正在使用什么编码?我不熟悉这个过程,谷歌上出现了很多关于 alt + numpad 组合键的信息,但我不认为这是正确的。
- 是否可以将我的一根琴弦“投射”为另一根琴弦?
- 是否可以创建一个通用的“比较器”函数来将这两个字符串等同起来?
在我看来,它们完全一样。目前我对编码没有偏好——我只希望两个字符串是等价的。