Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9

    Conversioni fra Charset

    mi ritrovo a dover gestire dati provenienti da form compilati in tutto il mondo. Per l'inserimento sono stati utilizzati charset diversi. Come faccio a sapere quale charset è stato utilizzato in modo da convertirlo in utf-8? Utilizzando htmlentities() devo indicare il charset utilizzato in origine, altrimenti mi vengono ritornati caratteri incomprensibili (�). Es.: per dei dati inseriti nella Rep. Ceca devo utilizzare htmlentities($strAPP, ENT_QUOTES, "cp866") per avere qualcosa di comprensibile, ma lo stesso non vale per gli altri. Come faccio? Esiste una funzione che se ne frega della codifica originale e mi converte in quella che voglio io?

  2. #2
    Visto che ho sbattuto la testa contro lo stesso problema, ti dico che alla fine ho rinunciato a cercare una biblioteca funzionante e mi sono scritto il codice da solo.
    Fondamentalmente nel 99% dei casi si tratta di distinguere tra uft-8 uft-16le (o be) e iso-latin

    utf-16 lo riconosci dal fatto che un byte e' quasi sempre vuoto e il seguente pieno
    (ma puoi anche lasciare perdere utf-16, lo usano in pochissimi)

    utf-8 lo riconosci dai byte che cominciano con 11 e sono seguito da byte che cominciano con 10.

    Se invece non ci sono byte cosi', o si tratta di caratteri ascii comuni compatibili sia con utf-8 che con iso-latin e quindi li puoi lasciare cosi',
    oppure si tratta di iso-latin

    Poi, per distinguere tra iso-latin-1 e i vari dialetti, fai una piccola statistica e guardati che caratteri ci sono nel file (non e' un metodo scientifico ma funziona quasi sempre).

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    9
    Grazie papero77! Effettivamente il problema non è di facile soluzione. Vedrò come fare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.