Naršyklės įvestos reikšmės PHP programose iškraipomos


Paskelbimo data:2020 m. gruodžio 8 d.



INFOMARTION > Naršyklės įvestos reikšmės PHP programose iškraipomos

Apžvalga.

Pereinant iš įvesties ekrano į patvirtinimo ekraną PHP programoje atsirasdavo iškraipytas tekstas.

Įvedant tekstą formoje ir pereinant į patvirtinimo ekraną tekstas iškraipomas.

Dėl įvesties tikrinimo klaidų pereinant į nuosavą ekraną taip pat atsiranda iškraipytas tekstas.

Kadangi serveris buvo ką tik sukurtas, pajutau, kad PHP konfigūracijoje kažko trūksta, todėl aprašysiu, ką tuo metu išsiaiškinau.


Turinys

  1. tyrimas (siekiant nustatyti ko nors priežastį)
  2. santrauka

1. tyrimas (siekiant nustatyti ko nors priežastį)

Siekiant išsiaiškinti problemos priežastį, buvo išnagrinėta ši informacija.

1-1. apklausa

Pirmiausia patikrinkite PHP nustatymus (php.ini).

php.ini


default_charset = "UTF-8"
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On

Jis yra toks, kaip aprašyta pirmiau, ir atrodo tinkamas.

Atrodo, kad problema kyla dėl PHP šaltinio.

Tačiau PHP šaltinis nenustatė tikėtinos problemos.

Dar kartą patikrinau įtartinų nustatymų php.ini ir radau vieną įtartiną nustatymą.

php.ini


mbstring.http_input = auto

Nebuvo aišku, ar jis užkoduotas UTF-8 formatu, nes buvo nustatyta automatinė reikšmė, todėl, norint tai išbandyti, jis buvo pakeistas taip.

php.ini


mbstring.http_input = UTF-8

Sėkmingai išspręstas iškraipyto teksto klausimas.

Šis nustatymas yra būtinas mbstring moduliui, kai PHP programoje naudojamos daugiabajtės eilutės, pvz., japonų kalba.

Gaunamų http užklausų kodavimo konfigūravimas.

2. santrauka

Jei atsiranda teksto iškraipymų, pirmiausia pabandykite organizuoti apdorojimo srautą.

Jei naudojant PHP perėjimui iš įvesties ekrano į patvirtinimo ekraną ar kitokiam perėjimui į kitą ekraną naudojami iškraipyti simboliai, įtarkite šiuos php.ini nustatymus.

Numatytoji nuostata yra "auto", todėl naudodami mbstring daugiabajtėms eilutėms apdoroti ją patikrinkite.

Dėkojame, kad žiūrėjote iki pabaigos.