Ben kodlama ile ilgili PHP ile sorun yaşıyorum.
I have a JavaScript/jQuery HTML5 page interact with my PHP script using $.post. However, PHP is facing a weird problem, probably related to encoding.
Ben yazarken
htmlentities("í")
I expect PHP to output í
. However, instead it outputs í
At the beginning, I thought that I was making some mistake with the encodings, however
htmlentities("í")=="í"?"Good":"Fail";
"Fail", çıktılamak nerede
htmlentities("í")=="í"?"Good":"Fail";
Ancak beklendiği gibi htmlentities($search, null, "utf-8")
çalışır.
Ben PHP MySQL sunucusu ile iletişim kurmak istiyorum, ama ben utf8_encode kullansanız bile o, çok sorunları kodlama vardır. Ben ne yapmalıyım?
EDIT: SQL komutu üzerine, yazma
SELECT id,uid,type,value FROM users,profile
WHERE uid=id AND type='name' AND value='XXX';
XXX hayır ben karakter içerdiğinde, beklendiği gibi çalışır, ancak herhangi bir 'í' karakter varsa öyle değil.
SET NAMES 'utf8';
SET CHARACTER SET 'utf8';
SELECT id,uid,type,value FROM users,profile
WHERE uid=id AND type='name' AND value='XXX';
Not only fails for í chars, but it ALSO fails for strings without any 'special' characters. Removing the ' chars from SET NAMES and SET CHARACTER SET doesn't seem to change anything.
Ben PDO kullanarak MySQL veritabanı bağlıyorum.
EDIT 2: Linux için XAMPP MySQL 5.1.30 sürümünü kullanıyorum.
EDIT 3: SHOW VARIABLES LIKE '%character%'
PhpMyAdmin çıkışlarından Koşu
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /opt/lampp/share/mysql/charsets/
Benim PHP komut dosyası çıkışları (print_r ile) aynı sorguyu çalıştıran:
Array
(
[0] => Array
(
[Variable_name] => character_set_client
[0] => character_set_client
[Value] => latin1
[1] => latin1
)
[1] => Array
(
[Variable_name] => character_set_connection
[0] => character_set_connection
[Value] => latin1
[1] => latin1
)
[2] => Array
(
[Variable_name] => character_set_database
[0] => character_set_database
[Value] => latin1
[1] => latin1
)
[3] => Array
(
[Variable_name] => character_set_filesystem
[0] => character_set_filesystem
[Value] => binary
[1] => binary
)
[4] => Array
(
[Variable_name] => character_set_results
[0] => character_set_results
[Value] => latin1
[1] => latin1
)
[5] => Array
(
[Variable_name] => character_set_server
[0] => character_set_server
[Value] => latin1
[1] => latin1
)
[6] => Array
(
[Variable_name] => character_set_system
[0] => character_set_system
[Value] => utf8
[1] => utf8
)
[7] => Array
(
[Variable_name] => character_sets_dir
[0] => character_sets_dir
[Value] => /opt/lampp/share/mysql/charsets/
[1] => /opt/lampp/share/mysql/charsets/
)
)
Koşu
SET NAMES 'utf8';
SET CHARACTER SET 'utf8';
SHOW VARIABLES LIKE '%character%'
boş bir dizi verir.