2015-04-08 2 views
1

Я использую Curl вводить китайские символы в моей веб-странице после кодирования URL следующим образом:китайские символы отображаются в другой кодировке после записи на веб-страницу с помощью Curl

rep_keywords = urllib.quote(unicode(keywords).encode("utf-8")) 
subprocess.Popen(['curl','-u', 'admin:admin','-X','POST','--data',"metacustom="+rep_keywords, ""+path]) 

персонажи получают кодируются следующим образом:

%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF%EF%BC% 

Однако, на веб-странице, они выглядят следующим образом:

æ ¼æ‹‰ 

Каждый р ost, который я прочитал по этому вопросу, упоминает, что кодировка UTF-8 должна делать трюк для отображения китайских символов, но это не работает в моем случае.

+0

Я не думаю, что это вопрос Python. Это может быть связано с [fonts] (http://www.pinyinjoe.com/faq/chinese-web-site-fonts-and-character-sets.htm) – RNikoopour

+0

Проверьте кодировку своей веб-страницы. Это может быть допустимым UTF-8, который интерпретируется и отображается так, как если бы это была некоторая другая кодировка. –

+0

Кодирование моей веб-страницы - UTF-8 – koolkat

ответ

0

Формат charset в моем запросе POST сделал разницу. Кроме того, используется '-F' (для указания многочастных данных POST в форме) вместо '-d'. Вот мой кусок кода:

subprocess.Popen(['curl','-u', 'admin:admin','-F','_charset_=UTF8','-F',"metacustom="+rep_keywords, ""+path]) 

Перед запросом на пост, кодировать строки Юникода в UTF-8:

rep_keywords = keywords.encode('utf8') 
Смежные вопросы