Кодировка Javascript не считывает правильные коды

#javascript #unicode #processing

#javascript #unicode #обработка

Вопрос:

Я пытался разместить свой код из Khan Academy на своем собственном веб-сайте. Код обработки работает нормально в Khan Academy. Но при размещении я сталкиваюсь с некоторыми проблемами.

Проблема в том, что обработка Khan Academy может правильно считывать значения определенных символов в юникоде, но когда я делаю то же самое в автономном режиме из браузера, оно отображается неправильно.

Я думаю, это связано с тем, что функция charCodeAt работает некорректно.

Вот мой код :-

 var test = "Ĭ";
println(test);
println(test.charCodeAt(0));
  

В Khan Academy unicode правильно печатается как 300. После чего мой браузер печатает его как 196. Более того, строка интерпретируется как 2 символа вместо 1 в браузере. Его размер показан как 2.

Как заставить кодировку работать правильно.

Пожалуйста, обратите внимание, что я использую Processing JS, и вот код, который я использую для размещения холста обработки :-

 var sketchProc=function(processingInstance){ with (processingInstance)   {
size(400, 400); 
frameRate(60);



var test = "Ĭ";
var n = test.codePointAt(0);

println(n);

println(String.fromCharCode(300));
println(test.length);

}};
  

Спасибо.

Комментарии:

1. Какой браузер? "Ĭ".length и "Ĭ".charCodeAt(0) выдает мне 1 и 300 в Chrome.

2. да, это работает отлично

3. Дело в том, что я использую processing JS. Я использую версию: — cdn.jsdelivr.net/processing.js/1.4.8/processing.min.js

4. Я зависит от ответа типа содержимого, он должен быть charset = «UTF-8» (или другой кодировкой unicode)

5. Я не уверен, какую версию использует Khan Academy. Я пытался использовать несколько разных версий. Но ссылка на версию обработки была взята из Khan Academy, где она работает правильно.

Ответ №1:

Основываясь на комментарии AlexandrKapustin, я смог решить проблему.

Я добавил следующий мета-тег к html-файлу, в котором размещен скрипт обработки :-

 <meta charset="utf-16">