2013-02-13 4 views
3

Есть ли способ указать кодировку в коде javascript encodeURI() или encodeURIComponent()? Например .:Javascript: encodeURI()/encodeURIComponent() charset

encodeURIComponent("例子", "UTF-8") выходы %E4%BE%8B%E5%AD%90

encodeURIComponent("例子", "GBK") выходы %C0%FD%D7%D3

+0

Нет, эти функции являются только UTF-8. Что вы пытаетесь достичь? – Christoph

+0

@Christoph, это для скрипта поиска словаря, который динамически создает ссылки на страницы UTF-8 и GBK на основе пользовательских входных данных. Существуют ли какие-либо функции, способные кодировать GBK? – optimizitor

ответ

1

Основываясь на earlier edit of this question, прежде чем пересмотрела его, кажется, что вы пытаетесь получить доступ к различным Baidu Baike на основе различных условий поиска вы представить. Мой ответ не имеет отношения к вашему новому вопросу JS, но простое решение вашей старой проблемы (и избавление от необходимости решения JS) заключается в том, чтобы указать кодировку символов в URL-адресе Baidu Baike: &enc=. Все следующие решительность правильно:

+0

Спасибо, это действительно работает с Baidu. Но мне все еще интересно, есть ли общий и простой способ сделать это с помощью JS или, может быть, простого HTML. – optimizitor

+0

Извините за много запоздалое обновление @kleopatra! Надеюсь, теперь это легче читать. Два года спустя ссылки все еще исправляются должным образом. –

+0

спасибо - это действительно :-) – kleopatra

2

Мое решение является использоваться НПМ пакет urlencode и browserify.

Написать в urlencode.js:

var urlencode = require("urlencode"); 
module.exports = function (s) { return urlencode(s, "gbk"); } 

browserify urlencode.js --s encode > bundle.js

И в bundle.js, функция называется encode объявлена.