sql >> データベース >  >> RDS >> Mysql

Unicodeの箇条書き文字を削除する

    データベース、フォーム送信、およびソースコード文字列リテラルがすべて関係しているため、ここでは多くの問題が発生する可能性があります。他の一般的なエンコーディング(CP1252、Latin1)では、json_を使用するときに失敗するため、UTF-8を使用することを想定します。 または、200を超える異なる文字を受け入れます。

    最初に行うことは、削除です。 エンコーディングの問題を修正することを目的として作成された、あらゆる種類の変換などのコード。 utf8_encodeなど 、htmlentitites*_replace .. なんでもいい。

    ソースエンコーディング。

    $str = "· Close up the server";
    

    上記を作成する場合、PHPソースファイルはUTF-8で物理的にエンコードする必要があります。 Windowsを使用している場合は、これを明示的に実行または構成する必要があります。 UTF-8はWindowsでは魔法のようには起こりません。

    フォーム送信

    ユーザーがフォームを送信すると、ペイロードは、ページを宣言したエンコードになります。次のように宣言できます:

    header("Content-Type: text/html; charset=utf-8");
    

    ただし、実際には誰でもサーバーに任意のバイトを送信できるため、続行する前に入力がUTF-8であることを確認する必要があります。 mb_check_encoding 良いです。

    データベース

    この時点でデータはUTF-8として受信されるため、入力文字列はUTF-8になります。これは、データベースに接続した後、接続エンコーディングを指定して指定する必要があります。

    mysql_set_charset("utf8"); //After making the connection, and before any queries
    //or $mysqli->set_charset( "utf8");
    

    これにより、データベースはUTF-8で入力を読み取り、その出力をUTF-8でエンコードします。また、列/テーブル/データベースもUTF-8に設定することをお勧めします。

    Unicodeエスケープシーケンス\uxxxx または\uhhhh\ullll または\Uxxxxxxxx PHPではサポートされていません。



    1. WHILEステートメントのMySQL構文エラー

    2. 外部mysqlデータベースをphpに接続する

    3. 1つの列から複数の列を取得する方法SQL

    4. スペルミスのあるデータを補正できるMySQL検索を作成するにはどうすればよいですか?