Возможно ли в Javascript определить, содержит ли строка многобайтовые символы? Если да, можно ли сказать, какие из них?
Проблема, с которой я сталкиваюсь, - это (извинения, если Unicode char не подходит для вас)
s = "𝌆";
alert(s.length); // '2'
alert(s.charAt(0)); // '��'
alert(s.charAt(1)); // '��'
Изменить для немного ясности здесь (надеюсь). Как я понимаю, теперь все строки в Javascript представлены как ряд кодовых точек UTF-16, а это означает, что обычные символы на самом деле возьмите 2 байта (16 бит), поэтому мое использование "multibyte" в заголовке было немного выключено. Некоторые символы не попадают в базовую многоязычную плоскость (BMP), такую как строка в приведенном выше примере, и поэтому они занимают две кодовые точки (32 бита). Это вопрос, который я задавал. Я также не редактирую оригинальное название, так как кому-то, кто мало знает об этом материале (и, следовательно, будет искать SO для информации об этом), "многобайтовый" имеет смысл.