W ColdFusion mogę określić wartość ASCII znaku za pomocą asc()
Jak określić wartość UTF-8 znaku?
0
James A Mohler
27 listopad 2018, 22:42
1 odpowiedź
Najlepsza odpowiedź
<cfscript>
x = "漢"; // 3 bytes
// bytes of unicode character, a.k.a. String.getBytes("UTF-8")
bytes = charsetDecode(x, "UTF-8");
writeDump(bytes); // -26-68-94
// convert the 3 bytes to Hex
hex = binaryEncode(bytes, "HEX");
writeDump(hex); // E6BCA2
// convert the Hex to Dec
dec = inputBaseN(hex, 16);
writeDump(dec); // 15121570
// asc() uses the UCS-2 representation: 漢 = Hex 6F22 = Dec 28450
asc = asc(x);
writeDump(asc); // 28450
</cfscript>
USC-2 jest ustalony na 2 bajty, więc nie może obsługiwać wszystkich znaków Unicode (ponieważ może być do 4 bajtów na znak). Ale co właściwie próbujesz tutaj osiągnąć?
Uwaga: Jeśli uruchomisz ten przykład i zwrócisz więcej niż 3 bajty, upewnij się, że CF pobierze plik jako UTF-8 (z BOM).
2
Alex
28 listopad 2018, 00:12
Podobne pytania
Nowe pytania
utf-8
UTF-8 to kodowanie znaków, które opisuje każdy punkt kodu Unicode przy użyciu sekwencji bajtów o długości od jednego do czterech bajtów. Jest wstecznie kompatybilny z ASCII, a jednocześnie obsługuje reprezentację wszystkich punktów kodowych Unicode.