Базовый набор символов зависит только от реализации C?

Многие тексты предупреждают, что обработкаchar значения в виде целых чисел не переносимы, например предполагая, что значение «A» составляет 65 (как в ASCII).

Но что определяет, является ли этот набор символов ASCII (или расширенной формой), или каким-либо другим набором символов? Это определяется операционной системой или компилятором? Я предполагаю, что это не зависит от оборудования.

Например, может ли у ПК Intel быть набор символов, такой как EBCDIC (в теории)? И мог поменятьLANG Переменная среды в Linux / Unix изменить значения базового набора символов для программ на C (если затем перекомпилировать)?

(edit: теперь я вижу, что различные наборы нелатинских символов в Linux имеют одинаковые базовые коды ASCII, например,KOI8-U - Я предположил, что были варианты, которые имели наборы символов, несовместимые с ASCII)

Ответы на вопрос(3)

Ваш ответ на вопрос