LoginSignup
4
5

More than 5 years have passed since last update.

\xC2\xA0がインサートできない

Posted at

postgresでノーブレークスペースがインサートできなくて困ったのでメモ。

状況

phpの開発でpostgresを利用し、ckeditorで編集した文字列を突っ込もうとしたらこんなエラーがでた。

character 0xc2a0 of encoding "UTF8" has no equivalent in "EUC_JP"

原因はデータベースの文字コードがEUC-JPでphp側がUTF-8だったため。
エディタで編集した時にノーブレークスペースが混ざり、
postgresが自動エンコードする際にエラーが出てしまい、Insertできなかった。postgresの仕様でこの仕様自体は変更できない模様。

解決方法

php側でEUC-JPに変換するのは面倒臭かったので、
ノーブレークスペースを半角スペースに変換することを思いついた。

使うのはこの関数
mb_ereg_replace

マルチバイトで判定して置換してくれる!めったに使わないだろうけど、あってよかった!

インサートしたいデータをこんなかんじで置換する。

$str = mb_ereg_replace(“\xC2\xA0″, “ ”, $str);

めでたくインサート出来ました!

4
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5