Вызов XML-RPC - это использование специальных символов - PullRequest
0 голосов
/ 13 марта 2011

По независящим от меня причинам мне приходится использовать интерфейс XML-RPC. Мой клиент - Ruby, сервер - PHP. Моя проблема в том, что любые «специальные» символы в сообщении меняются по пути.

Например, вот мой звонок в Ruby:

server   = XMLRPC::Client.new2('http://mysite.com/path/to/server/')
response = server.call('postTopic', {
  :topic_title  => "Tsígö"
})

Обратите внимание на два специальных символа в параметре :topic_title.

Когда он достигает сервера, это то, что показывает этот журнал:

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
   <methodName>postTopic</methodName>
   <params>
      <param>
         <value>
            <struct>
               <member>
                  <name>topic_title</name>
                  <value>
                     <string>Tsígö</string>
                  </value>
               </member>
            </struct>
         </value>
      </param>
   </params>
</methodCall>

Ответы [ 2 ]

1 голос
/ 13 марта 2011

"Tsà gö" - это "Tsígö", интерпретируемая как строка в кодировке ISO-8859-1 (AKA Latin-1).Итак, действительно ли сервер знает UTF-8 или он вслепую рассматривает все как Latin-1, несмотря на указанную кодировку?

1 голос
/ 13 марта 2011

Мне кажется, я понял проблему, благодаря комментарию мю к моему оригинальному сообщению.

Сервер XMLRPC IP.Board правильно получал данные UTF-8, но он не отображал правильно на внешнем интерфейсе. Проблема заключалась в настройке конфигурации IP.Board «Кодировка символов» в «Среде сервера», которая по какой-то причине была установлена ​​на ISO-8859-1 вместо UTF-8. Изменение значения на UTF-8 решило проблему с отображением.

...