簡體   English   中英

將unescape字符串轉換為Javascript中的十六進制值

[英]unescape string to hex values in Javascript

我正在使用JavaScript生成以下字符串:

"ISCP\x00\x00\x00\x10\x00\x00\x00\x09\x01\x00\x00\x00\x00\!1PWR01\x0D\x0A"

它代表文本和十六進制值的鏈。

實際上,實際的基礎字符串是這樣構建的:

"ISCP\\x00\\x00\\x00\\x10\\x00\\x00\\x00\\x09\\x01\\x00\\x00\\x00\\x00\\!1PWR01\\x0D\\x0A"

因為我必須逃脫斜線才能首先與他們合作。

現在,我必須以某種方式將此字符串轉換為鏈接的十六進制值字符串,以便可以通過TCP連接發送它。 結果看起來像這樣:

\x49\x53\x43\x50\0\0\0\x10\0\0\0\t\x01\0\0\0\0\x21\x31\x50\x57\x52\x30\x31\r\n

但是我不知道該怎么做。

您可以使用正則表達式在字符串中查找所有\\xHH樣式的序列,並將其替換為實際值。 由於您無法動態創建文字\\xHH轉義序列,因此需要使用帶有String.fromCharCode替換回調:

var newString = myString.replace(/\\x([0-9A-F][0-9A-F])/g, function(m, g1) {
    return String.fromCharCode(parseInt(g1, 16));
});

這會將每個\\x后面的兩位數字解析為以16為底的值,然后使用該數字作為字符代碼來創建一個新的單字符字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM