Tabloya eklemek için basit bir SQL sözdizim var. Postgresql 8.4 kullanıyorum ve Database kodlamasını UTF8, ve Collation ve Character type için POSIX olarak ayarlıyorum.Postgresql PHP kodlama için geçersiz bayt dizisi UTF8
Eğer pgadmin3 altında çalıştırırsam, ancak PHP'de çalıştırırsam hata getirirseniz sorgu iyi olur.
"Internal Server Error: SQLSTATE[22021]:
Character not in repertoire: 7 ERROR:
invalid byte sequence for encoding \"UTF8\": 0xd85b\nHINT:
This error can also happen if the byte sequence does not match the encoding expected by the server,
which is controlled by \"client_encoding\"
Yani ben şu anda PHP (PDO) den İSİMLERİ ve client_encoding ayarlamak, ama yine de ben yerli postgresql sürücüsünü
pg_pconnect
kullanıyorsam
$instance->exec("SET client_encoding = 'UTF8';");
$instance->exec("SET NAMES 'UTF8';");
pg_set_client_encoding($link, "UNICODE");
eseri Gözat aynı sorun var, ama çalıştı PDO'yu Sürücü olarak kullanıyorum.
ve ben de zaten
bu sorunu gidermek için başka bir yolu var mı mb_internal_encoding('UTF-8');
kurdu? i utf8_encode ile utf-8 içine kodlamak için arapça veya japon kelime gibi
Tüm bağlantı/veritabanı kodlamanızı utf-8 kullanmak üzere ayarlayabilirsiniz, ancak orijinal dize utf-8 kodlanmamışsa yine de hataya neden olur. – datasage
Lütfen pgAdmin'den "SHOW client_encoding;" sonucunu gönderir misiniz? – Houari
Lütfen hata raporundan (0xd85b gibi) tek karakterli bir giriş ve karşılık gelen bayt dizisini gösterin. Ayrıca, işletim sisteminizin varsayılan metin kodlamasının ne olduğunu bize söylemelisiniz; Eğer bilmiyorsanız, Linux/unix kullanıyorsanız 'locale' komutunu çalıştırın. Orijinal kodlamayı ve orijinal metni bilmeden çok şey söylemek zor. –