質問: new WWW(m_url, form); // Web にシンプルにアクセスします }catch(Exception e) { Debug.Log("error"+e.ToString()); } } } ``` ``` // サーバー側 prepare('insert into u2 (mydata) values (:data)'); $stt->bindvalue(':data',$obj->mydata); $stt->execute(); //実行 ``` ### 補足情報(言語/FW/ツール等のバージョンなど) Unity3d 5.3.5f1 (64bit) PHP 7.0.8 phpエディタ Visual Studio code (UTF-8) db PostgreSQL
回答: `preg_replace` で文字列を置換する際には `u` 修飾子が必要かどうかを確認しましょう。 PCRE では `u` 修飾子がついていない場合はバイト単位、ついている場合は文字単位で処理されます。マッチを行う際にはほとんど問題になりませんが、置換の際には気をつけなれけばなりません。 ``` '' // u 修飾子ありの場合 preg_replace('/[\x00-\x1F\x80-\xFF]/u', '', 'あいうえお'); // => 'あいうえお' ``` 今回の処理の目的は BOM を削除することなのでバイト単位で処理してしまうと日本語の範囲の文字は消えてしまうため、`u` 修飾子をつける必要があります。 参考: PHP: 正規表現パターンに使用可能な修飾子 - Manual