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

  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006
  • TastyTuts | Creative video tutorials by Gareth David

    TastyTuts |

    6 Temmuz 2011