XML エンコーディング

XML エンコーディング – Services_Ebay の XML エンコーディング

Services_Ebay の XML エンコーディング

2005 年の中ごろ以降、eBay API は UTF-8 エンコードされた XML 文書しか受け付けなくなります。すべてのデータを UTF-8 に変換するのは退屈な作業です。Services_Ebay が、 あなたのためにこれを代わりに行います。あなたがすべきことは、 セッションオブジェクトを作成する際に スクリプトのエンコーディングを指定することだけです。

スクリプトで ISO-8859-1 を使用する場合

<?php
require_once 'Services/Ebay.php';
    
// 認証データを渡します
$session Services_Ebay::getSession($devId$appId$certId'ISO-8859-1');
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);


$item Services_Ebay::loadModel('Item'null$session);
$item->Category 57882;
$item->Title 'International Item';
$item->Description 'This description contains Umlaut characters like Ä, ü and ß';
$item->Location 'At my home';
$item->MinimumBid '532.0'$item->VisaMaster 1;
$item->ShippingType 1;
$item->CheckoutDetailsSpecified 1;
$item->Country 'US';
$item->SetShipToLocations(array('US''DE''GB'));
$item->addShippingServiceOption(1131, array('US'));

$result $ebay->AddItem($item);
?>

商品の説明文に含まれているウムラウト文字は、XML ドキュメントを作成する際に 自動的に UTF-8 に変換されます。さらに、eBay API が返す結果のドキュメントは ISO-8859-1 にデコードされます。そのため、あなたは UTF-8 については何も考慮する必要はありません。

もちろん、UTF-8 エンコードされたデータを Services_Ebay に渡すこともできます。 セッションオブジェクトを作成する際のエンコーディング指定を変更するだけです。

スクリプトで UTF-8 を使用する場合

<?php
require_once 'Services/Ebay.php';
    
// 認証データを渡します
$session Services_Ebay::getSession($devId$appId$certId'UTF-8');
$session->setToken($token);

// 新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);


$item Services_Ebay::loadModel('Item'null$session);
$item->Category 57882;
$item->Title 'International Item';
$item->Description utf8_encode('This description contains Umlaut characters like Ä, ü and ß');
$item->Location 'At my home';
$item->MinimumBid '532.0'$item->VisaMaster 1;
$item->ShippingType 1;
$item->CheckoutDetailsSpecified 1;
$item->Country 'US';
$item->SetShipToLocations(array('US''DE''GB'));
$item->addShippingServiceOption(1131, array('US'));

$result $ebay->AddItem($item);
?>

この例では、utf8_encode() を使用して、 データを事前にエンコードしてから Services_Ebay に渡しています。二重にエンコードしてしまうことを避けるために、 エンコーディングを UTF-8 と指定する必要があります。