Ben bir veritabanına aşağıdaki dizeyi yazmaya çalışıyorum:
hoparlör ızgarası hareli etkisi yazdırırken.
'É' karakteri bana büyük bir baş ağrısı neden oluyor. Veritabanı bir masaüstü uygulamasının bir parçası çünkü, htmlentities
kullanamazsınız. Benim HTML UTF-8'dir.
Bu sorunu hata ayıklama benim (5 gün ve sayma) girişimi sırasında, ben kusurlu karakter olarak görüntülenir dışında iyi çalışır gibiydi masaüstü uygulamasını kullanarak veritabanına aynı dize eklenen '?' - Hatta htmlentities
veya utf8_encode
kullanarak.
Bunlar benim dize eklemek için çalışıyor aldığınız hata mesajları şunlardır:
Warning: PDOStatement ::) [pdostatement.execute] (yürütün: mesaj: Kapatılmamış tırnak işareti karakter dizesi önce 'hoparlör ızgarası Moir'. (Şiddeti 15)
Warning: PDOStatement :: execute () [pdostatement.execute]: Genel SQL Server hata: SQL Server gelen iletileri kontrol edin (şiddeti 15)
Warning: PDOStatement ::) [pdostatement.execute] (yürütün: mesaj: Satır 1: yakınında yanlış sözdizimi 'hoparlör ızgarası Moir'. (Şiddeti 15)
Lütfen yardım edin!
Update (2011-01-18)
Görünüşe göre, veritabanı karakter kodlamasını SQL_Latin1_General_CP1_CI_AS
. Bu ISO-8859-1 SQL Server eşdeğer midir? ISO-8859-1 PHP'nin varsayılan karakter kodlama değil mi?
Update 2 (2011-01-18)
So close! DSN dize charset=UTF-8
dahil bana 'é' karakteri eklemek için izin ve masaüstü uygulamasında doğru gösterir. Hala gibi sergiliyor '?' web sayfası olsa, ben preformatting işlevi $text_block = htmlentities( $text_block, ENT_NOQUOTES, 'UTF-8' );
kullanıyorum bile.