![]() |
|
#1
|
|||
|
|||
|
nusoapでAmazon
こちらのサイトを見てやってみました。
ところが、検索結果の文字だけ「???」と、化けてしまいます。 ↑のサイトのソースをそのままUTF-8で保存してあり、nusoap.phpも最新版で一応UTF-8で保存。 AmazonのアソシエイトIDやトークンはちゃんと自分のものを使用・・・。 ところが何故か改善されません・・・。 これはサーバーに問題があるのでしょうか? |
|
#2
|
||||
|
||||
|
nusoap.phpの84行目付近、
var $soap_defencoding = 'UTF-8'; にしたらどうですかね ? |
|
#3
|
|||
|
|||
|
そこは既に変更してました。
mb_internal_encoding("UTF-8"); とか入れてみてもダメでした・・・。 なにがなんだか ![]() |
|
#4
|
||||
|
||||
|
浜崎あゆみさんで検索してみましたが、
別に文字化けなどはしないようです。 トークンとかIDはダミーで、あとはオリジナルそのまま ちなみにサーバーはs17です。 明日には消しちゃいますのでヨロシク ← 削除済 Last edited by otsukare : 2003/10/14 at 08:34 PM. |
|
#5
|
|||
|
|||
|
エディーターのせいでは?
|
|
#6
|
|||
|
|||
|
文字コードをEUC-JPやSHIT-JISで使用したいなら
メモ帳をお使いですか?
ならば、3行目の <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> を <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> に変更して $keyword = htmlspecialchars($keyword);の下に $keyword = mb_convert_encoding($keyword ,"UTF-8", "SHIFT-JIS"); を挿入して foreach ($items as $i) { の下に $i['ProductName']=mb_convert_encoding( $i['ProductName'] ,"SHIFT-JIS", "UTF-8"); $i['Authors']=mb_convert_encoding( $i['Authors'] ,"SHIFT-JIS", "UTF-8"); $i['ListPrice']=mb_convert_encoding( $i['ListPrice'] ,"SHIFT-JIS", "UTF-8"); $i['OurPrice']=mb_convert_encoding( $i['OurPrice'] ,"SHIFT-JIS", "UTF-8"); を挿入して、 $keyword = rawurlencode("$keyword"); を $keyword = urldecode("$keyword"); $keyword = mb_convert_encoding($keyword ,"SHIFT-JIS", "UTF-8"); $keyword = urlencode("$keyword"); に変更して下さい。 これでメモ帳で保存してアップしても文字化けしないと思います。 EUC-JPの場合は、上記の修正のSHIFT-JISの部分をEUC-JPにかえるだけで良いです。 |
|
#7
|
||||
|
||||
|
全然関係ないかもしれませんが・・・
p_blogというシステム(UTF-8)をインストールしたときにs36サーバ(有料免除)では文字化けしてしまいました。
s36サーバ : http://tae.cute.bz/pblog/ 同じシステムをs42(無料)サーバにインストールした場合は問題ありませんでした。 s42サーバ: http://koeta.s42.xrea.com/pblog/ どちらも同じように設置したつもりです。 どこかでミスっている可能性もすてきれませんが、 http://sb.xrea.com/showthread.php?s=&threadid=6237 ↑このスレッドのようなケースもあるようなので、エディタなどに問題がない場合はサーバの関係かもしれません。 |
|
#8
|
|||
|
|||
|
ちょこっと修正!
先に上げたモノでは、作者がでませんでしたので、
上記の変更に加えて、 $i['Authors']=mb_convert_encoding( $i['Authors'] ,"EUC-JP", "UTF-8"); の上に $i['Authors']=implode(", ", $i['Authors']); を加えて、 元のプログラムの <?php echo implode(", ", $i['Authors']); ?> を <?php echo $i['Authors'] ?> に変更して下さい。 これで作者が出るはずです。 と言っても、書籍だけですけれど。 サンプル: http://lovepiano.com/link/score5.php Last edited by pop : 2003/10/14 at 02:26 PM. |
|
#9
|
||||
|
||||
|
同じ症状が・・・。
ボクも同じ症状が出てしまいます。
nusoap.phpはちゃんと var $soap_defencoding = 'UTF-8'; にしてありますし、aws.phpもちゃんとUTF-8で保存しています。 エディタはEmEditorで、UTF-8には対応しています。 一応mb_convert_encoding使うやり方も試してみましたが、だめでした・・・。 |
|
#10
|
|||
|
|||
|
丸2日に渡ってがんばってみましたが,私も同じように日本語が表示てきていません…
![]() NuSOAP.phpをUTF-8にしてみたり,エンコードをいろいろいじってみましたがどうしてもうまくいきません。 popさんがご提案されていた方法(Shift-JIS → UTF-8,UTF-8 → Shift-JIS)などもやってみました。が,はやり「?????」で出力されてしまいます。 どうもサーバー側の問題なのかな? とも考えるようになりました。 そこで提案なのですが,問題を解決された方,または問題が起こっていないという方の使用環境を教えていただけないでしょうか? お手数ですが,ぜひお願いします。 ------------------------------------------------ ちなみに当方の環境: PHP Version 4.3.4 Apache/2.0.45(Win32) ローカルで動かしています。 またmbstringは以下のような設定です。 Directive Local Value Master Value mbstring.detect_order no value no value mbstring.encoding_translation Off Off mbstring.func_overload 0 0 mbstring.http_input pass pass mbstring.http_output SJIS SJIS mbstring.internal_encoding EUC-JP no value mbstring.language Japanese Japanese mbstring.substitute_character no value no value |
|
#11
|
|||
|
|||
|
すいません,質問しておいて,勝手に解決していましました…
http://mylog.ishinao.net/id/879 にishinaoさんが書かれているように NuSoap.phpの4390行目付近 if($this->decode_utf8){ $data = utf8_decode($data); } をコメントアウトすればよいようでした。 上記URLには修正用NuSoap.phpも用意されているようですが,ファイルが壊れていて開けませんでした。 お騒がせいたしました。 |