#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">