Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> json rpc, проблемы с русским языком 
:(
    Опции темы
sandello
Дата 6.11.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 18.5.2005
Где: Пермь

Репутация: нет
Всего: 2



Взял библиотечку для JSON-RPC http://json-rpc.org. Реализовал пример оттуда с сервисом echo. Пока запрос и ответ содержат ACSII - проблем нет. Только попробовал русский язык в utf-8 кодировке подсунуть - так сразу все свалилось :( Причем свалилось на серверной части. Пока не могу понять почему.

В логах апача следующее
Код

[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] URI: '/json/main.py'
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] Location: '/json'
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] Directory: None
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] Filename: '/var/www/html/json/main.py'
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] PathInfo: ''
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] Traceback (most recent call last):
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "/usr/lib64/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch\n    default=default_handler, arg=req, silent=hlist.silent)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "/usr/lib64/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target\n    result = _execute_target(config, req, object, arg)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "/usr/lib64/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target\n    result = object(arg)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/modpywrapper.py", line 49, in handler\n    ModPyServiceHandler(req).handleRequest(req)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/modpywrapper.py", line 43, in handleRequest\n    resultData = ServiceHandler.handleRequest(self, data)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/serviceHandler.py", line 78, in handleRequest\n    resultdata = self.translateResult(result, err, id_)
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/serviceHandler.py", line 108, in translateResult\n    data = dumps({"result":rslt,"id":id_,"error":err})
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/json.py", line 80, in dumps\n    return unicode("".join([part for part in dumpParts (obj)]))
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/json.py", line 100, in dumpParts\n    for part in dumpParts (value):
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/json.py", line 100, in dumpParts\n    for part in dumpParts (value):
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1]   File "build/bdist.linux-x86_64/egg/jsonrpc/json.py", line 104, in dumpParts\n    yield u'"' + StringEscapeRE.sub(escapeChar, obj) +u'"'
[Thu Nov 06 23:54:08 2008] [error] [client 127.0.0.1] UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 19: ordinal not in range(128)


клиент
Код

# vim: set fileencoding=utf-8 :

from jsonrpc import ServiceProxy
s = ServiceProxy("http://localhost/json/main.py")
print s.echo("testййй")


сервер
Код

# vim: set fileencoding=utf-8 :

from jsonrpc import handleCGI, ServiceMethod

@ServiceMethod
def echo(msg):
    return "testww"


Стоит Fedora 9
Python 2.5


--------------------
user posted image
PM MAIL Jabber   Вверх
Daevaorn
Дата 6.11.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 3
Всего: 70



А если уникод подсунуть?
PM MAIL WWW   Вверх
sandello
Дата 7.11.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 18.5.2005
Где: Пермь

Репутация: нет
Всего: 2



В смысле?
Все строки у меня и так в юникоде.


--------------------
user posted image
PM MAIL Jabber   Вверх
AlexKozlov
Дата 16.12.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 16.12.2008

Репутация: нет
Всего: 1



Аналогичная прооблема. Валится именно на сервере - как только в файле появляются русские буквы, что в строках, что в комментариях - все валится.

Update:
Нашел лекарство:
в начале скрипта, самой первойстрокой укажите
# -*- coding: utf-8 -*-
и наступит счастье

Это сообщение отредактировал(а) AlexKozlov - 16.12.2008, 13:37
PM MAIL   Вверх
pythonwin
Дата 29.12.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



Цитата(AlexKozlov @  16.12.2008,  16:04 Найти цитируемый пост)
и наступит счастье

Это счастье временное - Полное просветление как вижу не наступило -
прочитай документацию по ссылке 



Это сообщение отредактировал(а) pythonwin - 29.12.2008, 22:03
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.