我有一個存儲網址的JavaScript變量。我必須將該URL發送到後端以執行一些操作,並且由於URL可能包含特殊字符,因此我將其轉換爲十六進制以避免問題。後端代碼不是我的,我什至不能看到代碼。後端正在使用哪種字符編碼?
編碼工作得很好,當我採用IPS嘗試,例如,如果我想在JavaScript發送「192.168.1.1」我把它編碼爲「3139322e3136382e312e31」和後端明白它完美。
問題出現在我嘗試使用域時,後端預期和我發送的內容不匹配。如果我想在JavaScript中發送'cstmal',我將它編碼爲'6373746d616c',但服務器等待'7066677A6e79'。
有什麼不對?我看了很多,但我找不到答案。
我用編碼的代碼是:
function encode(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
result += str.charCodeAt(i).toString(16);
}
return result;
}
總之,你知道是什麼角色轉換給出了這樣的結果:
C = 70
S = 66
T = 67
m = 7A
a = 6E
l = 79
謝謝!
你怎麼知道服務器「等待」什麼?我嚴重懷疑這是你認爲它是編碼的字符的實際編碼。 – Pointy
當我進行創建操作時,將在BD中創建鏈接並轉換域。在那裏我看到他們在做什麼。 –