0

私のコントロールが及ばない理由で、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パラメータ内の2つの特殊文字に注意してください。

サーバーに到達すると、次のようにログに表示されます。

<?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>
4

2 に答える 2

1

元の投稿に対するmuのコメントのおかげで、問題を理解できたと思います。

IP.Board の XMLRPC サーバーは UTF-8 データを正しく受信していましたが、フロント エンドで正しく表示していませんでした。問題は、IP.Board 構成設定の「サーバー環境」の「文字エンコード」にあり、何らかの理由で UTF-8 ではなく ISO-8859-1 に設定されていました。値を UTF-8 に変更すると、表示の問題が修正されました。

于 2011-03-12T23:41:08.517 に答える
1

"Tsígö" は、ISO-8859-1 (AKA Latin-1) でエンコードされた文字列として解釈される "Tsígö" です。では、サーバーは実際に UTF-8 を認識しているのでしょうか、それともエンコーディングが指定されているにもかかわらず、盲目的にすべてを Latin-1 として扱っているのでしょうか?

于 2011-03-12T23:41:43.693 に答える