Czy w języku JavaScript można wykryć, czy ciąg zawiera znaki wielobajtowe? Jeśli tak, to czy można powiedzieć, które z nich?Jak mogę sprawdzić, czy ciąg zawiera znaki wielobajtowe w JavaScript?
Problem używam do jest to (przepraszam jeśli char Unicode nie pojawi się dla ciebie)
s = "";
alert(s.length); // '2'
alert(s.charAt(0)); // '��'
alert(s.charAt(1)); // '��'
Edycja na trochę jasności tutaj (mam nadzieję,).Jak rozumiem teraz:, wszystkie ciągi w Javascriptu są reprezentowane jako seria punktów kodowych UTF-16, co oznacza, że zwykłe postacie zajmują obecnie 2 bajty (16 bitów), więc moje użycie "wielobajtowego" w tytule było trochę nie tak. Niektóre znaki nie mieszczą się w podstawowej płaszczyźnie wielojęzycznej (BMP), takiej jak łańcuch w powyższym przykładzie, a więc zajmują dwa punkty kodowe (32 bity). To jest pytanie, które zadaję. Nie edytuję też oryginalnego tytułu, ponieważ dla kogoś, kto nie ma zbyt wiele informacji na ten temat (i dlatego szukałby SO w celu uzyskania informacji na jego temat), "multibajt" miałby sens.
wyrażenie regularne? – Marco
do sprawdzenia czego? – nickf
Czy jest to dla Unicode, czy też może być również UTF-8? – Davidann