SORU
2 Kasım 2011, ÇARŞAMBA


PHP: herhangi bir dize UTF-8 özgün karakter kümesini bilmeden Dönüştürmek, ya da en azından deneyin

Dünyanın her yerinden müşterileri ile ilgilenen bir uygulama var, ve, doğal olarak, her şey benim veritabanlarının UTF-8 olarak kodlanmış olması için girmek istiyorum.

Asıl sorun, benim için olduğunu bilmiyorum kodlama kaynak herhangi bir dize olacak - olabilir bir metin kutusu (kullanarak <form accept-charset="utf-8"> sadece yararlı eğer kullanıcı aslında teslim formu), ya da olabilir bir metin dosyası yükledi, bu yüzden gerçekten üzerinde hiçbir kontrolü girdi.

İstediğim şeyler benim veritabanı girmeden, mümkün olduğunca, UTF-8 kodlanmış olduğundan emin kılan bir işlev veya sınıf. **2 denedim ama bu sorunlar varsa giriş ise ('' döner '') nişanlı. nişanlısı Bir çok şey denedim =/

Dosya yüklenenler, benim gibi fikrini soran son kullanıcı belirtmek için kodlama kullanırlar ve onlara göster önizleme ne çıktı gibi görünür, ama bu hiç etkilemiyor karşı kötü bilgisayar korsanları (aslında, olabilir yapmak onların hayat biraz daha kolay).

Okudum diğer konularda tabi, ama onlar gibi tüm ince farklar gibi "ihtiyacım için ayrıştırmak RSS" veya "ben kazımak veri web siteleri" (ya da, aslında, "o").

Ama en azından iyi olan bir şey olmalıdeneyin!

CEVAP
2 Kasım 2011, ÇARŞAMBA


Ne istediğinin son derece zordur. Mümkünse, kullanıcı kodlama belirtmek için almak en iyisidir. Bir saldırıyı önlemek çok kolay ya da zor bu şekilde olmamalı.

Ancak, bunu deneyebilirsiniz:

iconv(mb_detect_encoding($text, mb_detect_order(), true), "UTF-8", $text);

Sıkı verilmesi halinde daha iyi bir sonuç almanıza yardımcı olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • Crossover

    Crossover

    18 HAZİRAN 2007
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008