2013-02-20 44 views
6

Bir üye tabloya eklenecek bir kayıt formum vardı, harmanlama utf8_general_ci içinde ve ben php komut dosyasında SET NAMES utf8 kullanıyorum, sorun şu ki, ben saf dışında bir dize ekleyemiyorum alfabe, ben bir form alanında 'Hélène' giriş deneyin, sql sorgu çalıştırdıktan sonra, ben db tablo ile kontrol ediyorum, alan 'H' olarak eklenir, dize özel alfabesi ile geldiğinde alfabenin geri kalanı eklenemez arkada é, ř gibi.MySQL Özel karakterler ekleme

Birisi yardım edebilir mi? Teşekkürler.

ÇÖZÜM:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

mysql_query("SET NAMES utf8"); 

hat iki üstünde bir web sayfasında veritabanı ve çıkış içine girdi kabul etmek önemli bir parçasıdır.

Herkese tavsiye için teşekkürler.

+3

kodlamaları hakkında okuyun ve bu iki büyük metinlerde kendi taşıma ve mutlaka sorunu bulacaksınız: http://kunststube.net/frontback/ ve http://kunststube.net/encoding/. –

+0

DB tablosunun kodlaması nedir? Ayrıca utf-8 olduğundan emin olun. Ayrıca, komut dosyanızın doğru dizeyi aldığını da kontrol edin. Form verisini DB'ye eklemeden önce ekleyiniz. (Sonra doğrulama.) Burada –

+0

Bak çözeltisi [MySQL SET ADI utf8?] [1] [1]: http://stackoverflow.com/questions/2159434/set-names-utf8-in- mysql – sanj

cevap

1

emin kodlama utf8 ile kodlama sonra verilerini eklemek için

CREATE SCHEMA `youdatabasename` DEFAULT CHARACTER SET utf8; 
+0

Bu bir cevap değil. –

+0

oh iyi ben kodlama ile sorun yok emin olmak için kullandığım :) yerine bir yorum olmalı? –

+0

emin olmak için bu yeterli değildir. –

2

deneyin sizin veritabanı oluşturmak olun. Kodlamak için mysql_real_escape_string()'u deneyin. daha sonra insert sorgusunu yürütün.

DÜZENLEME: -

Bu cevap bir yıl önce gönderilmiş. Şimdi php 5 için mysql_real_escape_string(), mysqli :: real_escape_string bu biçimde çalışacaktır. sizin için çalışmıyor çok farklı charset codings hakkında veya htmlentities eğer endişe istemiyorsanız, buraya alternatif here

1

kontrol Ve edin: Ben mysqli DB bağlantısı (ve PHPV5) yazma Formu yayınını kullandı/MySQl DB'ye ekleniyor.

$Notes = $_POST['Notes']; //can be text input or textarea. 

$charset = mysqli_character_set_name($link); //only works for mysqli DB connection 
printf ("To check your character set but not necessary %s\n",$charset); 

$Notes = str_replace('"', '&quot;', $Notes); //double quotes for mailto: emails. 
$von = array("ä","ö","ü","ß","Ä","Ö","Ü"," ","é"); //to correct double whitepaces as well 
$zu = array("&auml;","&ouml;","&uuml;","&szlig;","&Auml;","&Ouml;","&Uuml;","&nbsp;","&#233;"); 
$Notes = str_replace($von, $zu, $Notes); 
echo " Notes:".$Notes."<br>" ; 
$Notes = mysqli_real_escape_string($link, $Notes); //for recommended mysqli DB connection. 
//$Notes = mysql_real_escape_string($Notes); //for old deprecated mysql DB connection. 

// mysqli_real_escape_string Escapes special characters in a string for use in an SQL statement 

echo " Notes:".$Notes ; //ready for inserting 
+0

İçindekileri görüntülerken: Komik karakterler belirirse başlıktaki bu satır. KarlosFontana

+0

'mysqli_real_escape_string' olmamalıdır Orada mükemmel bir yer tutucu sistemi olduğunda kullanılır. – tadman