2012-09-11 10 views
6

Sto cercando di usare file_put_contents (e file_get_contents per questo) con una codifica UTF-8 ¥ seguendo questo StackOverflow messaggio: How to write file in UTF-8 format? che utilizza:codifica file_put_contents utilizzata sui server Web?

$data = mb_convert_encoding($data, 'UTF-8', 'OLD-ENCODING'); 

che non è stato davvero spiegato bene, in quanto produce un errore di:

mb_convert_encoding(): Illegal character encoding specified 

Così 'OLD-ENCODING' era solo un segnaposto che stavano usando. La domanda che ho è quale codifica dovrei cambiare? ASCII o ISO-8859-1? Quale codifica utilizza la maggior parte degli host web? Importa?

Quando apro il file, otterrò il simbolo correttamente, solo se ho il mio blocco note impostato con la codifica UTF-8. Se lo apro con un altro set di caratteri, verrà visualizzato con "?".

risposta

4

provare senza terzo parametro.

$str = mb_convert_encoding($str, "UTF-8"); 

O auto:

$str = mb_convert_encoding($str, "UTF-8", "auto"); 

Maggiori informazioni ed esempi su: http://php.net/manual/function.mb-convert-encoding.php

+0

lol questo funziona. –

+0

ofc it funziona come dice la prima regola del programmatore: "rendilo il più semplice possibile" :) – StasGrin

+0

L'ho provato con molti scenari diversi e ha funzionato ogni volta. grazie, questo merita più uptotes :) –

1

mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data));

mb_detect_encoding

+0

Grazie! ma che rileva la codifica utilizzata sul server? I miei simboli sono convertiti nella corretta codifica del server? –

+0

No, rileva la codifica su '$ data' – nullpotent

+0

oh quindi funzionerebbe per file_get_contents. Che ne dici di metterlo? quale codifica utilizzano i server web? –

Problemi correlati