O conjunto de caracteres subjacente depende apenas da implementação de C?

Muitos textos advertem que o processamentochar valores como inteiros não são portáteis, e. assumindo que o valor de 'A' é 65 (como em ASCII).

Mas o que determina se esse conjunto de caracteres é ASCII (ou uma forma estendida) ou algum outro conjunto de caracteres? É determinado pelo sistema operacional ou pelo compilador? Estou presumindo que isso não depende do hardware.

Por exemplo, um PC da Intel poderia ter um conjunto de caracteres como o EBCDIC (em teoria)? E poderia mudar oLANG variável de ambiente no Linux / Unix muda os valores do conjunto básico de caracteres para programas C (se recompilados)?

(edição: vejo agora que os vários conjuntos de caracteres não latinos no Linux têm os mesmos códigos ASCII básicos, por exemploKOI8-U - Eu assumi que havia variações que tinham conjuntos de caracteres não compatíveis com ASCII)

questionAnswers(3)

yourAnswerToTheQuestion