質問

イギリスの住所データと国際住所データを使用しています。

Googleマップで使用するために住所データをジオコーディングする必要があります。 HTTPサービスを使用してこれを行っています。すなわち、クエリ文字列を構築し、それをfile_get_contents($ THEURL)に渡します。

住所データの80%を完全にジオコーディングできましたが、ノルウェーやスウィーデンなどの特殊文字を含む国の住所ではジオコードが返されません。返されるコードは602です(住所が見つかりません)。

ドキュメントを見ると、googleに送信される文字列はUTF8でエンコードされている必要があることがわかります。

文字列がUTF8エンコードされていることを確認するために次のことを試しました/特殊文字を削除します。

1)クエリ文字列でUTF8エンコードを使用する-これにより、画面に不正な文字が表示されることがよくあります。

2)mb_check_encodingは、文字列が正しくエンコードされていることを報告します。

3)関数を使用して、ユーロピエンのユーザーに特殊文字を代入します(google apiが補償することを期待しています)。

私のメソッドが機能しない理由を誰かが提案できますか(エンコードを行うかどうか)。

役に立ちましたか?

解決

システム内のすべてのエンコードの側面を体系的に調べ、エンコードの種類を定義する必要があります。 Mb_detect_encoding と当て推量はここでは良い方法ではありません。

次のエンコードを確認する必要があります:

  • 着信データ
    • ページ
    • GETパラメーター
    • データベース接続
    • データベーステーブルの照合順序
  • 使用するスクリプトファイル

誤った形式の文字が発生する場合は、ISO-8859-1または他の非UTF-8エンコードをどこかで使用している可能性があります。すべてがきれいなUTF-8である場合、リクエストは通過するはずです。

基本に関する非常に優れた記事は、ソフトウェア開発者ごとの絶対最小要件Unicodeおよび文字セットについて(言い訳なし!)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top