Во-первых, всякий раз, когда вы имеете дело с текстом (и весь текст должен содержать какой-то не-1001 * US-ASCII символ, рано или поздно), вы будете гораздо счастливее делать это в Python 3.xа не в серии 2.х.если Py3 не вариант, попробуйте всегда использовать from __future__ import unicode_literals
( доступно в Python 2.6 и 2.7 ).
в основном, когда вы отправляете текст или любые другие данные по проводам, это происходит только в виде байтов (октетов битов), поэтому в какой-то момент их придется кодировать.попытайтесь выяснить, где именно эта кодировка происходит в вашей цепочке инструментов;при необходимости используйте инструмент отладки (или разверните операторы print( repr( x ) )
), чтобы просмотреть соответствующие переменные.другое упомянутое вами программное обеспечение предположительно написано на PHP, языке, который, как известно, имеет проблемы с юникодом .вы говорите, что «он должен кодировать данные с помощью utf-8», но, с другой стороны, когда принимающая сторона видит данные входящего запроса RPC, эти данные уже должны быть в utf-8.его нужно будет декодировать, чтобы снова получить Unicode.