I've never done this before and am not sure why it's outputting the infamous �
encoding character. Any ideas on how to output characters as they should (ASCII+Unicode)? I think \u0041
-\u005A
should print A-Z
in UTF-8, which Firefox is reporting is the page encoding.
var c = new Array("F","E","D","C","B","A",9,8,7,6,5,4,3,2,1,0);
var n = 0;
var d = "";
var o = "";
for (var i=16;i--;){
for (var j=16;j--;){
for (var k=16;k--;){
for (var l=16;l--;){
d = c[i].toString()
+ c[j].toString()
+ c[k].toString()
+ c[l].toString();
o += ( ++n + ": "
+ d + " = "
+ String.fromCharCode("\\u" + d)
+ "\n<br />" );
if(n>=500){i=j=k=l=0;} // stop early
}
}
}
}
document.write(o);
If you want to use the
\unnnn
syntax to create characters, you have to do that in a literal string in the code. If you want to do it dynamically, you have to do it in a literal string that is evaluated at runtime:Of course, just using
String.fromCharCode(i)
would be a lot easier...The
.fromCharCode()
function takes a number, not a string. You can't put together a string like that and expect the parser to do what you think it'll do; that's just not the way the language works.You could ammend your code to make a string (without the '\u') from your hex number, and call
to get the value. Then you could call
.fromCharCode()
with that value.A useful snippet for replacing all unicode-encoded special characters in a text is:
Using
replace
,fromCharCode
andparseInt