Ho sentito che PHP ha un supporto Unicode molto scarso. Quindi, cosa serve per realizzare un'applicazione Unicode PHP 5 supportata in PHP 5.3+? Il mbstring sarebbe l'unica opzione qui? Come ha fatto Facebook o Yahoo a superare questo limite PHP?Unicode in PHP?
risposta
PHP ha alcun supporto di basso livello per qualsiasi codifica. Ma tutto ciò che significa in realtà è che non importa su un livello di lingua . Le stringhe in PHP sono sequenze di byte grezzi, che possono essere in qualsiasi codifica che ti piace. Quando si gestiscono stringhe multi-byte, è necessario fare attenzione a utilizzare la funzione di manipolazione delle stringhe corretta anziché avvitare direttamente il flusso di byte. Quindi l'unico "non-supporto" di Unicode è che non include il concetto di codifica nel linguaggio core stesso, ma si può ancora lavorare con qualsiasi codifica perfettamente bene manipolando le stringhe usando la funzione di stringa appropriata.
In realtà, se si prende solo un po 'di attenzione per mantenere tutto in UTF-8 tutto il tempo, raramente dovrete preoccuparvi di qualsiasi cosa riguardante le codifiche. PHP funziona perfettamente con Unicode.
Per un'ampia copertura di questo argomento, vedere What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text.
+1 per questo link –
PHP ha uno scarso supporto Unicode, ma non è impossibile farlo, basta stare attenti con le funzioni che si stanno utilizzando e il loro supporto per Unicode. Questa pagina presenta un buon riepilogo del supporto Unicode per le diverse funzioni ed estensioni http://www.phpwact.org/php/i18n/utf-8
L'articolo collegato è un po 'isterico. L'articolo è stato scritto il 2009-10-21 e ovviamente si riferisce a una versione obsoleta di PHP, che è stata compilata anche senza l'estensione mbstring (la maggior parte dei pacchetti Linux pre-compilati [ad esempio quelli per Debian o Ubuntu] includono mbstring- estensione). Basta usare quell'estensione. – feeela
Se i dati provengono da tabelle che utilizzano UTF-8, è sufficiente impostare le intestazioni e il metode corretti e si dovrebbe essere ok (non è necessario codificare nulla):
<?php
header ('Content-type: text/html; charset=utf-8');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
</body>
</html>
Questo non cambierebbe nulla sulla gestione delle stringhe via PHP, ad es. in metodi come 'substr()'. Vedi anche il link sulla risposta di chaft ... – feeela
I seguenti mbstring-variabili dovrebbe essere impostato tramite php.ini o vhost configurazione (httpd.conf; non funziona per directory [via .htaccess]):
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 7
Basta lasciare il codice come era, fare certo il tuo Editor/IDE salva solo i file come UTF-8 e distribuisce tutto come UTF-8 (via HTTP-header o META-tag).
Vedi anche: PHP Manual – Multibyte String – Function Overloading Feature
- 1. Controlla unicode in PHP
- 2. Stampa caratteri Unicode PHP
- 3. PHP, str_pad unicode issue
- 4. Come convertire Emoji da Unicode in PHP?
- 5. Spazio vuoto Unicode Trim in PHP 5.2
- 6. PHP costruisce una stringa Unicode?
- 7. come posso gestire unicode in PHP senza estensione mbstring
- 8. Algoritmo di ordinamento naturale in PHP con supporto per Unicode?
- 9. Funzione PHP per convertire unicode in caratteri speciali?
- 10. Utilizzo di PHP per trovare Unicode di un carattere
- 11. Memorizzazione e visualizzazione stringa unicode (हिन्दी) utilizzando PHP e MySQL
- 12. Converti unicode in emoji
- 13. Stampa Unicode in vim
- 14. Unicode in Git alias
- 15. stringa Unicode in XML
- 16. Unicode in Rhino
- 17. Caratteri Unicode in PyGame
- 18. Problemi Unicode in FreeType
- 19. Converti in rappresentazione Unicode
- 20. Le espressioni regolari per una serie di punti unicode PHP
- 21. strlen() funzione PHP dando la lunghezza sbagliata di caratteri Unicode
- 22. Guide per gestire Unicode in PHP5?
- 23. Come archiviare unicode in MySQL?
- 24. Converti numero in segno Unicode
- 25. Sostituisci caratteri unicode in PostgreSQL
- 26. Caratteri visivamente identici in Unicode
- 27. Trasforma stringa unicode in python
- 28. supporto unicode in Android ndk
- 29. Unicode memorizzato in C char
- 30. Come utilizzare Unicode in AutoHotKey?
Seguire tutte le istruzioni pubblicate qui. Ti suggerisco di scaricare Notepad ++ e assicurarti di salvare il file come utf8. Molti editori hanno la cattiva abitudine di salvare come ansi che è una schifezza – OptimusCrime
@OptimusCrime Penso che sia la cattiva abitudine del programmatore, non quella di cambiare le impostazioni, il che è possibile per quasi tutti gli editor (almeno quelli con evidenziazione della sintassi) . – feeela