我不熟悉Javascript,並且正在尋找返回字符的UNICODE值的函數,並且在給定UNICODE值的情況下,返回字符串等效項。我確定有一些簡單的東西,但我沒有看到它。在JavaScript中爲Unicode值調用Asc()和Chr()的簡單方法是什麼?
實施例:
- ASC( 「A」)= 65
- CHR(65)= 「A」
- ASC( 「ਔ」)= 2580
- CHR(2580)= 「ਔ」
我不熟悉Javascript,並且正在尋找返回字符的UNICODE值的函數,並且在給定UNICODE值的情況下,返回字符串等效項。我確定有一些簡單的東西,但我沒有看到它。在JavaScript中爲Unicode值調用Asc()和Chr()的簡單方法是什麼?
實施例:
看一看:
String.fromCharCode(64)
和
String.charCodeAt(0)
首先必須呼籲字符串類(字面String.fromCharCode...
),並返回 「@」(64)。第二個應該在字符串實例(例如,"@@@".charCodeAt...
)上運行,並返回第一個字符的Unicode代碼('0'是字符串中的位置,您可以通過更改字符串中的其他字符的代碼那到另一個數字)。
腳本片段:
document.write("Unicode for character ਔ is: " + "ਔ".charCodeAt(0) + "<br />");
document.write("Character 2580 is " + String.fromCharCode(2580) + "<br />");
給出:
Unicode for character ਔ is: 2580 Character 2580 is ਔ
謝謝,這正是我尋找的功能! – Noah 2009-01-21 01:42:02
因爲JavaScript uses UCS-2 internally,String.fromCharCode(codePoint)
不會爲補充Unicode字符的工作。例如,如果codePoint
是119558
(0x1D306
,對於''
字符)。
如果你想創建一個基於非BMP Unicode代碼點的字符串,你可以使用Punycode.js的實用功能,UCS-2字符串和UTF-16代碼點之間進行轉換:
// `String.fromCharCode` replacement that doesn’t make you enter the surrogate halves separately
punycode.ucs2.encode([0x1d306]); // ''
punycode.ucs2.encode([119558]); // ''
punycode.ucs2.encode([97, 98, 99]); // 'abc'
如果要獲取字符串中每個字符的Unicode代碼點,則需要將UCS-2字符串轉換爲UTF-16代碼點數組(每個代理對形成一個代碼點)。你可以使用Punycode.js的效用函數是:
punycode.ucs2.decode('abc'); // [97, 98, 99]
punycode.ucs2.decode(''); // [119558]
其實,Javascript使用UTF-16編碼。如果你把更多的BMP放入它,並閱讀它,你會得到完全一樣的你放入。雖然你不會寫在它的文字處理器。 – Chad 2013-04-05 07:49:23
舉例這裏生成的字母排列:
const arr = [];
for(var i = 0; i< 20; i++) {
arr.push(String.fromCharCode('A'.charCodeAt(0) + i))
}
那麼,它不會是ASC(),但UNI()。哈哈,今天早上我狀態很好:-)。 – paxdiablo 2009-01-21 01:23:20