Htmlspecialchars'dan ve oluşumları için 'utf-8' parametresi () ekleme - Bu şey zarar verebilir?

2 Cevap php

Projemi varsayarsak boyunca utf-8 olduğunu ve her zaman utf-8 kodlaması ile kullanılır olmuştur, ben htmlspecialchars($var) to htmlspecialchars($var, ENT_QUOTES, 'utf-8') ?

O da tek tırnak kaçar Açıkçası, ENT_QUOTES ENT_COMPAT farklıdır: Ben bir şey biliyorum. Başka bir şey, ben yalnız bu şey kırmak değil biliyorum orada bırakılır varsayarsak?

Farklı ifadeli:

htmlspecialchars() charset parametresi olmadan kullanıldığında, given data only from the charset, o htmlspecialchars() kullanılan with charset farklı olurdu bir akla sonuç vardır parametresi?

(Mı, herhangi bir noktada, htmlspecialchars($stringThatIsValidUTF8, ENT_QUOTES) !== htmlspecialchars($stringThatIsValidUTF8, ENT_QUOTES, 'utf-8')?)

Benim anlayış, hayır asla diyor. Another question here on stackoverflow, çok, hayır göstermektedir. Şimdiye kadar, değişiklikleri ile proje benim sandbox gezen de hayır diyor. Ben bir şey bakan değilim, ancak ben emin değilim. Ben şu anda oldukça paranoyak bir ruh hali içinde değilim! :)

2 Cevap

Ben başka söz PHP kılavuzundan alıntı kesinlikle cevapları düşünüyorum:

Bu işlevin amaçları için, charsets ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 ve KOI8-R karakterler htmlspecialchars'dan etkilenen gibi, etkin eşdeğer () aynı işgal Bu karakter setlerinin tüm pozisyonları.

" & > ve böylece tüm ilgili bu kodlamanın her aynı kodu, ve hatta UTF-8 onlar, sadece bir bayt gerektirir çünkü UTF sadece gerektiğinde -8 karakter birden çok bayt işgal edecektir. Eğer şimdiye kadar ISO-8859-1 ile UTF-8 veri işleme edilmiştir bile açık UTF-8 girişine geçiş, bu nedenle, çıkış aynı olacaktır.

Hayır, bu farklı olmaz, kendisin herhangi charset vermedi, PHP bu nedenle UTF-8 kullanır, bunu tahmin olacaktır.