Domanda

Vorrei tutto il mio toolkit di utilizzare UTF-8 ma scoprire che alcuni strumenti in Windows sembrano utilizzare CP1252 (che sembra essere specifico per Windows). Questo crea uscita che è incompatibile e in caso affermativo a che codepoints? Se è così, posso fare qualcosa al riguardo?

(non capisco del tutto le questioni così sarei grato per l'istruzione di base su queste codifiche).

È stato utile?

Soluzione

Strumenti hard-codifica per il codice 1252 su Windows è molto improbabile. Molto più probabile è che capita di essere la pagina di codice predefinita sulla vostra macchina. 1252 è utilizzato in Europa occidentale e le Americhe. Si è configurato in Pannello di controllo, Opzioni internazionali e della lingua. Sono stati utilizzano nomi diversi per esso, su Win7 è nella scheda amministrativo, Modifica impostazioni internazionali del sistema.

Sì, molti strumenti utilizzare la tabella codici predefinita a meno che non hanno un buon motivo per scegliere un'altra codifica. Il BOM è un buon motivo tale. Esempi notevoli sono il Blocco note (a meno che non si cambia la codifica nella finestra di dialogo Apri file + per qualcosa di diverso da ANSI) e compilatori C / C ++. C'è in genere non è niente di speciale quello che devi fare per utilizzare la pagina di codice predefinita. Indovinare la pagina di codice corretto per un file di testo quando non si dispone di una distinta base è impossibile da fare con precisione. Google "cespuglio nascosto i fatti" per una storia di guerra molto divertente.

Altri suggerimenti

Sei anni e sempre attuale: Developer Absolute minimo Ogni software assolutamente, positivamente deve sapere Unicode e set di caratteri (scuse!)

Ora, sulla tua domanda: Sì, ci sono ancora strumenti là fuori che choke on UTF-8 file. Ma sempre più strumenti sono "ottenendolo". Se si sta sviluppando la propria roba, si potrebbe voler guardare in Python 3 in cui tutte le stringhe sono Unicode. La filosofia è quella di convertire tutti i tuoi input in Unicode (se necessario) il più presto possibile, e li riconvertire ad una codifica di destinazione il più tardi possibile. Ci sono toolkit là fuori che farà un buon lavoro di indovinare la codifica di un particolare file (ad esempio, Mark Pilgrim 's chardet , un porto di Mozilla codifica rilevatore ). Questo è bello se si lavora con i file che non specificano una codifica.

CP1252 e UTF-8 sono gli stessi per tutti i caratteri <128. Essi differiscono di sopra. Quindi, se si tiene fede a inglese e stare lontano da segni diacritici questi saranno gli stessi.

La maggior parte degli strumenti di Windows userà ciò che è impostata come tabella codici corrente dell'utente corrente, che per impostazione predefinita al 1252 per gli Stati Uniti di Windows. È possibile cambiare la situazione a un'altra tabella di codici piuttosto facilmente. Ma UTF-8 non è una delle opzioni tabella codici disponibili per Windows. (Vorrei che fosse).

Alcune utilità sotto Windows capiranno il UTF-8 mark ordine di byte all'inizio di un file. Purtroppo non so come determinare se questo funzionerà se non per provare.

UTF-8 è supportato su Windows, ma non come un corrente codepage. È possibile utilizzare UTF-8 per la conversione da / per esso, ma non è possibile impostare è come tabella codici corrente.

In primo luogo non cercare di perdere tempo impostando la tabella codici - questo approccio vi ricorderà di Sisifo mito - non si può davvero risolvere il problema applicando tabelle codici, è necessario utilizzare Unicode

.

L'unica vera soluzione per voi è quello di costruire la vostra applicazione come Unicode in modo che userà UTF-16 e per la conversione da / UTF-8 su operazioni in / out. Questo viene fatto abbastanza semplice perché supporti fopen lettura o la scrittura UTF-8.

Per quanto riguarda l'utilizzo di altri strumenti di Windows con UTF-8 file, non dovrebbe essere a conoscenza, perché se lo strumento è in grado di lavorare con ASCII che possa funzionare con UTF-8 (anche in modo che non può essere in grado di distinguere tra Unicode caratteri, ma almeno sarà in grado di caricare / analizzare i file).

A proposito, ti sei dimenticato di specificare quale linguaggio di programmazione stai usando e quali strumenti di Windows stai prendendo in considerazione per l'utilizzo.

Inoltre, se voi accorti interessato circa più roba di internazionalizzazione si prega di visitare il mio blog.i18n.ro

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top