Загрузка EUC-JP и других японских текстовых кодировок в Node.JS - PullRequest
3 голосов
/ 24 января 2011

Я пытаюсь очистить некоторые японские сайты для личного проекта. Сайты с текстом в UTF-8 работают отлично, как и следовало ожидать, но я не могу получить текст с сайтов, указывающих другие международные кодировки, в частности EUC-JP. Кажется, что Node также интерпретирует текст и выполняет модификации, а не передает его в необработанном виде - я попытался установить ответ, который будет интерпретироваться как ascii и двоичный, и затем установил мое терминальное приложение на EUC-JP, но после выполнения console.log(), ни один из результатов не приводит к фактическому тексту.

Я проверил документацию по Node, и кажется, что он поддерживает только два основных кодирования текста (кроме двоичного и base64).

Я использую встроенный http-клиент и задаю кодировку с помощью метода response.setEncoding, например. response.setEncoding('utf8');

Как другие люди работают с международным текстом в Node (особенно в ситуациях, когда исходные данные не в UTF-8?) Являются ли двоичные буферы единственным способом?

Несмотря на то, что я провел небольшое исследование, я не очень хорошо осведомлен, когда дело доходит до кодирования символов, поэтому были бы полезны простые ответы. Спасибо!

1 Ответ

2 голосов
/ 04 февраля 2011

Существует модуль, который добавляет привязки iconv к node.js . Если вы возьмете ответ как двоичный файл Buffer, вы можете использовать Iconv.convert для преобразования его из EUC-JP в UTF-8 (для примера посмотрите README ).

...