Director de php, funcții de șiruri multibyte

În multe limbi, caracterele pot fi exprimate într-un singur octet. Codurile de caractere multiple sunt folosite pentru a exprima caracterele multor alte limbi.
mbstring este conceput pentru a lucra cu personaje japoneze. Cu toate acestea, multe funcții ale mbstring pot funcționa cu alte codificări, nu numai cu limba japoneză.







Codificarea de caractere multibyte reprezintă un caracter în mai mulți octeți consecutivi. Unele codificări au secvențe de schimbare (escape) la linii de start / sfârșit de caractere multibyte. Prin urmare, un șir multibyte poate fi distrus prin împărțire și / sau numărare, dacă nu utilizați metoda de codificare fiabilă a caracterelor multibyte. Acest modul oferă funcții pentru stocarea multor caractere de octeți și a altor funcții auxiliare, cum ar fi funcțiile de conversie.

Deoarece PHP este conceput în principiu pentru ISO-8859-1, unele codificări multibyte nu funcționează bine în PHP. Prin urmare, este important să setați mbstring.internal_encoding pentru codificarea care funcționează cu PHP.

Setările de setări de caractere PHP4

Caracterele cu un singur octet se află în intervalul 00h-7fh. care este compatibil cu ASCII

codificare multibyte - în afara intervalului 00h-7fh

Iată câteva exemple de codificare internă a caracterelor care nu funcționează cu PHP.

Codificarea caracterelor care nu funcționează cu PHP poate fi convertită utilizând funcția de conversie I / O HTTP a modulului mbstring.

Notă: SJIS nu ar trebui să fie utilizat pentru codarea internă decât dacă cititorul este suficient de familiarizat cu problemele operației de parser / compilator și de codificare a caracterelor.

Notă: dacă utilizați o bază de date cu PHP, este recomandat să utilizați aceeași codare pentru baza de date și codare internă / codificare internă pentru o utilizare mai ușoară și o performanță mai bună.

Dacă utilizați PostgreSQL, acesta suportă codificări de caractere diferite de codarea backend. Vedeți detaliile din tutorialul PostgreSQL.

mbstring este un modul de extensie. Trebuie să-l conectați cu scriptul de configurare. Consultați detaliile din secțiunea Instalare.

Următoarele opțiuni de configurare sunt relevante pentru modulul mbstring:

--activați-mbstring. include funcțiile mbstring. Această opțiune este necesară pentru utilizarea funcțiilor mbstring.

--activați-mbstr-ENC-trans. include conversia codificării de caractere a intrării HTTP utilizând mașina de conversie mbstring. Dacă această opțiune este activată, codificarea de caractere a intrării HTTP poate fi convertită automat la mbstring.internal_encoding.







Conversia codificării caracterelor I / O HTTP poate de asemenea converti datele binare. Utilizatorii sunt încurajați să controleze conversia codărilor de caractere dacă se utilizează date binare pentru I / O HTTP.

Dacă formatul HTML al formularului HTML este setat la mai multe părți / date-forme. mbstring nu convertește codificarea caracterelor la date POST. În acest caz, șirurile trebuie transformate în codificare internă a caracterelor.

Nu există modalități de a controla conversia caracterelor de intrare HTTP dintr-un script PHP. Dezactivarea conversiei caracterelor de intrare HTTP trebuie făcută în php.ini.

Exemplul 1. Dezactivarea conversiei caracterelor de intrare HTTP în php.ini

În prezent, modulul mbstring acceptă următoarele codări de caractere. Codificarea caracterelor poate fi specificată de parametrul de codare al funcțiilor modulului mbstring.

Iată codificările acceptate de această extensie PHP:

Intrare în php.ini. acceptând numele codificării, acceptă și "auto" și "treci".
Funcțiile mbstring care acceptă numele codificării sunt, de asemenea, acceptate ca "auto".

Dacă este setat "pass", nu se efectuează nici o conversie de codificare a caracterelor.

Dacă este setat "auto", acesta se extinde la "ASCII, JIS, UTF-8, EUC-JP, SJIS".

Consultați și mb_detect_order ()

Notă: "codificările de caractere acceptate" nu înseamnă că funcționează ca un cod de caracter intern.

Setările Php.ini

mbstring.internal_encoding definește codarea caracteristică internă a caracterelor prestabilite

mbstring.http_input specifică codificarea de caractere a intrării HTTP implicite

mbstring.http_output specifică codificarea caracterului pentru ieșirea HTTP implicită

mbstring.detect_order specifică ordinea în care este setată implicit codarea caracterelor. Consultați și mb_detect_order ()

mbstring.substitute_character definește caracterele pentru a înlocui codificările incorecte ale caracterelor

Browserele web sunt încurajate să utilizeze aceeași codificare la trimiterea formularelor. Cu toate acestea, este posibil ca browserele să nu utilizeze aceeași codare a caracterelor. Consultați mb_http_input () pentru a determina codificarea browserului.

Dacă enctype este setat la formula multiplă / formulară în formulare HTML, mbstring nu convertește codificarea caracterelor la date POST. Utilizatorul trebuie să facă acest lucru în scenariu, dacă este necesară conversia.

În același timp, browserele sunt suficient de sofisticate pentru a determina codarea caracterelor în HTML. charset este mai bine să instalați în header / antet HTTP. Schimbarea caracterelor implicite în funcție de codificarea caracterelor.

Exemplul 4. setările php.ini

Puteți utiliza până la 6 octeți pentru a stoca caracterul.

Un caracter multibyte este, de obicei, de două ori mai larg decât un caracter unic de octet. Simbolurile mai largi sunt numite "zen-kaku" - ceea ce înseamnă "lățime totală", cele mai înguste fiind numite "han-kaku" - ceea ce înseamnă "jumătate lățime". "zen-kaku" au de obicei o lățime fixă.

Unele codificări definesc o secvență de schimbare (evadare) pentru intrare / ieșire în / de la șiruri de caractere multiple.

ISO-2022-JP trebuie utilizat pentru SMTP / NNTP.

Site-ul "i-mode" se presupune a fi utilizat cu SJIS.

Informații despre simboluri Japoneză / Coreeană / Chineză







Trimiteți-le prietenilor: