MySQL ve PHP unicode sorunlar

1 Cevap php

Ben bir microsoft access dosyasından aşağıdaki UTF-8 dosyası ihraç

http://www.yousendit.com/download/TTZtT214SU84Q1FLSkE9PQ

Ben MySQL veritabanı durumu ile utf8 olduğu sağlamıştır; istemci hem de sunucu için komut. Ben aşağıdaki komutu ile benim veritabanına yukarıdaki dosya eklemek:

LOAD DATA LOCAL INFILE 'tblAuction1.txt' INTO TABLE Auctions FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\';

Hepsi bildiğim kadarıyla söyleyebilirim olması gerektiği gibi tür Tamam, unicode karakterler html görüntülenir olacak gibi görünüyor. Veritabanı alanının doğrudan içeriği burada:

http://www.nomorepasting.com/getpaste.php?pasteid=22622

Ancak çıkan html kodunu görüntülenir:

http://www.nomorepasting.com/getpaste.php?pasteid=22617

Hangi gibi görüntüler

Ücret İlanı

1.00 
<\/OBJECT>
');\n\t\t<\/SCRIPT>\n\t\t

tarayıcıda

Bu göstermek için kullanıyorum kodu:

http://www.nomorepasting.com/getpaste.php?pasteid=22618

Ben kodlama değişti önce çalışma para cezası edildi.

ayrılmış virgül kadar ayrılmış sekmesinden değişen ve alanlar yarı yarıya ihraç dosyanın boyutunu ddecrease olur kuşatan neden bir yan soru olarak, ben merak ediyorum. Sekme karakteri sadece gibi tek bir karakter; karakter ve çevrelemek için tırnak ekleyerek boyutu artmıştır olmalıdır?

1 Cevap

Web sunucusunun yapılandırmasına bağlı olarak açıkça "text / html; charset = UTF-8" kodlamasını belirlemek için gerekebilir ile, header():

header('Content-Type: text/html; charset=UTF-8');

Bu özel sorun için yeterli olmalı, ancak - durumda da dizeleri işlemek niyetinde - PHP çoklu-bayt karakterler ile kullanımı güvenli olmayan birçok fonksiyon içerdiğini unutmayın: en azından düzgün {[(0 yapılandırmanız gerekir )]}.

Ben de imleri bu cheatsheet var, ben hala alakalı olduğunu düşünüyorum.