UTF-8'den farklı bir karakter kümeniz varsa ve bunu bir DB'ye geçirmek için JSON biçimine koymanız gerektiğinde, PHP'de kullanılabilen iki yöntem vardır: utf8_encode() ve iconv() . Hangisinin daha iyi bir performansa sahip olduğunu ve bir ya da diğerini kullanmanın ne zaman uygun olduğunu bilmek isterim.iconv() Vs. utf8_encode()
cevap
Eğer bir karakter kümesi farklı olduğunda UTF-8
Hayır - utf8_encode()
UTF-8'e bir ISO-8859-1 dize dönüştürmek için sadece uygundur. Iconv çok sayıda kaynak ve hedef kodlama sağlar.
Re performans, ben utf8_encode()
içten nasıl çalıştığını hiçbir fikrim yok ve hangi bunu kütüphaneler kullanır ama benim tahmin kadar fark olmayacak olan - verilerin en azından üzerinde "normal" tutarlar bayt veya kilobayt . Şüpheniz varsa, bir kıyaslama yapın.
Ben iconv()
geçersiz veri karşılaştığında ne yapacağını ile ilgili daha ayrıntılı denetim sağlar, bu da
B.
set karaktere karakter kümesi A'dan bir dönüşüm olduğunu daha net çünküiconv()
kullanma eğilimindedir. Hedef karakter kümesine
//IGNORE
eklenmesi, geçersiz karakterleri sessizce bırakmasına neden olur. Bu belirli durumlarda yardımcı olabilir.
Kendi işlevinizi yazmanızı öneriyorum. 2-3 satır uzun olacak ve yerel ayar, ikon vb. Konularla uğraşmaktan daha iyi olacaktır. Örneğin
Ve yazar isterse Bütün olası giriş karakterlerini bilmediği bir yaklaşım? –
- 1. İşlev utf8_encode undefined
- 2. iconv():
- 3. iconv unicode bilinmeyen giriş biçimi
- 4. PHP'de iconv() ve mb_convert_encoding() arasındaki fark nedir?
- 5. iconv akıllı tırnaklarla "Yasadışı Karakter" verir - onlardan nasıl kurtulur?
- 6. latin1 gibberish karakterlerini iconv işleviyle UTF-8 İbranice karakterlere dönüştürün
- 7. UTF-16LE'den UTF-8'e dönüştürmek için iconv kullanma
- 8. ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
- 9. & vs * ve | VS +
- 10. SpiderMonkey vs JavaScriptCore vs?
- 11. VS
- 12. VS
- 13. IDataErrorInfo vs ValidationRule vs Exception
- 14. cudaStreamSynchronize vs CudaDeviceSynchronize vs cudaThreadSynchronize
- 15. visualvm vs JProbe vs JProfiler
- 16. _mm_load_ps vs. _mm_load_pd vs. etc
- 17. pycuda vs theano vs pylearn2
- 18. is_numeric() vs is_float() vs is_int()
- 19. TextColor vs TextColorPrimary vs TextColorSecondary
- 20. GridView vs DataList vs için Repeater vs ListView 'in performansı
- 21. Qt: UI ile vs vs ile xml vs ile qml
- 22. Barındırma PowerShell: PowerShell vs. Runspace vs. RunspacePool vs. Pipeline
- 23. Python vs Jython vs IronPython vs wxPython arasındaki fark nedir?
- 24. Oyun geliştirmeye nereden başlayacaksınız? UIKit vs Core Animation vs QuartzCore vs OpenGL vs Cocos2D
- 25. XAML vs WPF vs Store App vs Phone App vs UWA
- 26. RhinoMock: Mocks Vs StrictMocks Vs DynamicMocks
- 27. Resim vs Fotoğraf vs. Görüntü - Adlandırma modelleri
- 28. Clojure listesi vs vektör vs set
- 29. grails def vs Nesne vs Void
- 30. CSS "::" vs ":" - sözde seçici vs psödo seçici?
ayrıca u \ 00F, bu java kod çözme otomatik ISO-8859-1 dönüşüm bu tür oluşturmak için // trasnlit kullanabilirsiniz. ama utf-8'e şifrelenmiş farklı karakter kümeleri varsa aynı şey olup olmayacağından emin değilim. –
Not: PHP = = 5.4.0 şimdi geçersiz karakterler üzerinde başarısız olur, hatta // IGNORE bayrağı: https://bugs.php.net/bug.php?id=61484 – dotancohen