2016-11-15 9 views
0

私はPHP関数またはライブラリ、またはを探しています。顧客のコピー&ペーストがutf8の文字列を壊したときに壊れたフォームの入力値を検証できます。壊れたコピーの貼り付けユーザ入力

シナリオ:彼はアドレス

  • コピーします壊れたのutf8文字列を記憶している第三者壊れたページが開きます
  • に街路名を入力するように要求され

    1. お客様が(参照例)
    2. この文字列を入力フィールドに貼り付けてクリックします。

    Sサーバー側では、 "正しい"有効なutf8値を受け取りました。

    これをキャッチしてキャッチしてエラーメッセージを表示する方法はありますか?

    試験例:最初UTF-8文字列で

    • "ATA€™sのâ€~em"
    • "Bokowski"
  • +0

    書籍、ツール、ソフトウェアライブラリ、チュートリアルや他のオフサイトのリソースをお勧めしますか見つけるために私たちを尋ねる質問には、スタックオーバーフローのためにオフトピックです彼らは独断答えを誘致する傾向があるとスパム。代わりに、問題を説明し、それを解決するためにこれまでに何が行われているかを記述します。 – Lexi

    +1

    preg_matchを使用して、入力が有効かどうかを検証できます。たとえば、azやazなどの文字と数字を比較することができます:az AZ 0-9 :) – Soheyl

    +0

    実際に「At’s」という単語をペーストすると、実際には「Atâ」という単語が貼り付けられます€™sâ€~em "(ちょうど私が今ここでやっているように)。何も "壊れた"ものではありません。実際にあなたがそこにいたいキャラクターではありません。だから、それはちょっとした問題です。明らかな*正しい答えがないからです。 *が*何かが壊れているとき*が*それじゃないとき? – deceze

    答えて

    0

    値が間違っているかどうかを判断する一般的な方法はないので、正規表現[A-Za-z0-9 \ - 。]と一致し、一致しなければ警告メッセージを表示します。

    (@soheylによって提案された)

    0

    が破損することができません。文字列にはutf-8以外の文字を使うことができますが、それはちょうど別のエンコーディングですが、 '壊れている'ように見えます。

    string mb_detect_encoding (string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]]) 
    

    ソース:http://php.net/manual/en/function.mb-detect-encoding.php

    PHPは、エンコーディングの種類が指定した文字列のために使用されているかどうか確認する機能を有しています。

    ただし、指定された文字列がどのようなエンコーディングであるかをチェックするだけで、正しいエンコーディングが使用されているかどうかを確認することができます。

    これが役に立ちます。

    +0

    回答ありがとうございますが、utf8でエンコードされた有効なサイトから来ているため、この場合は常にUTF-8になります。 – wormhit

    関連する問題