Qual è la codifica dei caratteri predefinita?


8

Non so quanto sia profonda questa domanda (ad esempio, per quanto ne so ce ne potrebbero essere diversi, a seconda del mio compito).

In particolare, sono interessato a quali tipi di stringhe vengono utilizzate per denominare i file e le cartelle sul sistema.

Sono anche interessato a come le stringhe sono rappresentate di default per uno script bash o python.


Questa è una buona domanda soprattutto se ti sei convertito da Windows e dai il codice sorgente a un sistema di controllo della versione. Dopo il passaggio a Ubuntu potresti improvvisamente riscontrare caratteri speciali illeggibili, perché Windows in genere non utilizza UTF-8.
Bananeweizen,

Risposte:


3
  • La codifica dei nomi dei file nel filesystem è utf-8.
  • Bash pensa in byte, non con conoscenze di stringhe con codifica. Quindi nessuna codifica predefinita. La codifica predefinita di gnome-terminal è utf-8
  • La codifica predefinita di Python è ascii

Python 3 (penso?) Sta cambiando per impostazione predefinita nelle stringhe Unicode.
Broam,

Il tipo str () di Python 3 è un oggetto unicode nella codifica UCS-2 o UCS-4 internamente. Il modo in cui i dati vengono letti o scritti ad es. Da file e stdin deve essere determinato dallo sviluppatore dell'applicazione / libreria, con utf-8 standard (ad esempio print (some_str) stamperà una rappresentazione utf-8).
Dennis Kaarsemaker,

Python 3 diventerà Unicode come Ruby 1.9 Python 2 e meno, come Ruby 1.8 e meno sono basati su ASCII e funzionano con tutti i set di caratteri, ma la loro idea sul conteggio dei caratteri per le stringhe Unicode è sbagliata. (che di solito non è un problema)
Ralf

3
gnome-terminal non usa di default utf-8; usa semplicemente qualunque sia l'impostazione locale. (Come ho scoperto di recente).
frabjous

1
@DennisKaarsemaker No, Python3 non lascia la codifica solo allo sviluppatore e utilizza un valore predefinito di UTF-8. Stdin e -out ad esempio usano la codifica dell'ambiente di default!
Robert Siemer,

7

La codifica dei caratteri predefinita è UTF-8 (Unicode), sebbene quasi tutti (molto probabilmente tutti su un'installazione predefinita) i nomi dei file siano caratteri ASCII regolari, comuni alla maggior parte delle codifiche.

Non so cosa intendi con "quante stringhe sono rappresentate da uno script bash o python". Puoi usare i caratteri Unicode negli script bash su Ubuntu, ma di solito con uno script bash, chiami altri programmi e se questi altri programmi li gestiranno è un'altra cosa. È certamente possibile farlo anche con Python, anche se ti consigliamo di familiarizzare con i pacchetti e le impostazioni ad essi correlati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.