2010-01-15 46 views

Trả lời

48
'H'.charCodeAt(0) 
+0

Xin chào, cảm ơn vì giải pháp. Nó sẽ chỉ hoạt động với các từ tiếng Anh? khi tôi cố gắng tìm mã char cho một từ tamil nó không hoạt động đúng cách. Nếu tôi sử dụng String.fromCharCode (2974); nó trả về ký tự 'ஞ', cùng một cách, Nếu tôi sử dụng 'ஞ'. charCodeAt (0) nhận 38, và đó là cho '&', tại sao nó lại như vậy? – shanish

+0

@shanish: Bạn nhận được gì nếu bạn viết 'String.fromCharCode (2974) .charCodeAt (0)'? (Nó hoạt động cho tôi.) Có lẽ trình soạn thảo và/hoặc tệp nguồn của bạn không thân thiện với Unicode. –

9

Sử dụng charCodeAt:

var str = 'H'; 
var charcode = str.charCodeAt(0); 
5

Hoặc Hơn thế nữa:

function CHR(ord) 
{ 
return String.fromCharCode(ord); 
} 

function ORD(chr) 
{ 
return chr.charCodeAt(0); 
} 

sau đó sử dụng

var mySTR = ORD(72); 

nếu bạn muốn sử dụng chúng nhiều hơn một lần, và/hoặc rất nhiều.

5

@ Câu trả lời của Silvio chỉ đúng đối với các điểm mã tối đa 0xFFFF (mà cuối cùng là mức tối đa mà String.fromCharCode có thể xuất). Bạn có thể không luôn luôn giả định chiều dài của một nhân vật là một trong:

''.length 
-> 2 

Dưới đây là một cái gì đó mà làm việc:

var utf16ToDig = function(s) { 
    var length = s.length; 
    var index = -1; 
    var result = ""; 
    var hex; 
    while (++index < length) { 
     hex = s.charCodeAt(index).toString(16).toUpperCase(); 
     result += ('0000' + hex).slice(-4); 
    } 
    return parseInt(result, 16); 
} 

Sử dụng nó:

utf16ToDig('').toString(16) 
-> "d800df30" 

(Nguồn cảm hứng từ https://mothereff.in/utf-8)

Các vấn đề liên quan