PHP kullanarak bir Postregs tabloya Japon metin eklemek nasıl?

3 Cevap php

i bir PostgreSQL tabloya "翻訳する テキスト や Web ページ" eklemek için tring, ancak bu gibi gösterilmekte ediyorum:

"& #32763;""& #35379;"す& #12427;テ& #12461;& #12473;& #12488;& #12420;Web& #12506;& #12540;& #12472;

Bunu nasıl uygun formatta ekleyebilirsiniz?

<?php
$db = pg_connect("host=localhost port=5432 dbname=lang user=password=") or die(":(");
pg_set_client_encoding($db , "UTF-8");
#pg_exec($db,"SET NAMES 'UTF-8'");
#pg_exec($db,"SET CLIENT_ENCODING TO 'UTF-8'");
//$lan=iconv("UTF-8",'ISO-8859-1//TRANSLIT',$_REQUEST['lan']);
$lan=$_REQUEST['lan'];
echo $lan;
if(array_key_exists('sub',$_REQUEST))
{
$sql="INSERT INTO table1 (japan) VALUES('{$lan}')";
pg_query($sql) or die("errot");
}
?>

<html>
<body>
  <form action="" method="">
    <input type="text" name="lan" />
    <input type="submit" name="sub" />
  </form>
</body>
</html>

3 Cevap

table1 sağ harmanlama sahip olduğu sürece çalışacaktır ne

http://www.postgresql.org/docs/8.1/static/sql-createdatabase.html kodlamasını ayarlama (bkz. veritabanı çapında)

http://www.postgresql.org/docs/8.1/static/multibyte.html mevcut karakter desteği için ve nasıl kullanılacağını görmek

edit
note that php provides a pg_set_client_encoding() to change the encoding, however, like the direct sql query that does the same, it converts from the backend encoding to the requested client encoding and doesn't help with inserts. For that to work, the database/postreSQL must have the correct encoding set (see the first two references).

(Not: çok uzakta boyunca değildir ve birden çok alfabe gerekiyorsa mysql kolları alfabe much daha iyi, böylece daha sonra geçiş için iyi bir fikir olabilir)

Benim düşünceme göre, PG 32763 altıgen 7FFB (wiki) 翻 eşittir beri, doğru değerlerini saklar

Muhtemelen verileri görüntüleyen bir sorun var? Dize sütunlar için ayrı bir Unicode etkinleştirilmiş veri türü var mı? Eğer pgAdmin ile kontrol ettiniz mi tablonun gerçek içeriği nedir?

Bu sorun tüm veritabanına ilgili olmadığını görünüyor.

Sadece HTML kodlama bildirimi (pratikte orada HTML için güvenilir bir varsayılan kodlama ve sen çöp alacak) yoksun.

Uygun <meta> etiket ekle veya charset parametresi ile Content-Type başlığını gönderirler.


BTW: kodu SQL injection açığı var. Sorgularda istek değişkenleri koymayın. Hazırlanmış ifadeler kullanın ya da en azından her zaman kullanabilirsiniz pg_quote().