Czy podstawowy zestaw znaków zależy tylko od implementacji C?

Wiele tekstów ostrzega, że ​​przetwarzaniechar wartości jako liczby całkowite nie są przenośne, np. zakładając, że wartość „A” wynosi 65 (jak w ASCII).

Ale co decyduje o tym, czy ten zestaw znaków to ASCII (lub formularz rozszerzony), czy jakiś inny zestaw znaków? Czy jest to określone przez system operacyjny lub kompilator? Zakładam, że nie zależy to od sprzętu.

Na przykład, czy komputer Intel może mieć zestaw znaków, taki jak EBCDIC (teoretycznie)? I może zmienićLANG zmienna środowiskowa w Linuksie / Uniksie zmień wartości podstawowego zestawu znaków dla programów C (jeśli zostanie ponownie skompilowany)?

(edit: Widzę teraz, że różne nie łacińskie zestawy znaków w Linuksie mają te same podstawowe kody ASCII, np.KOI8-U - Założyłem, że istnieją odmiany, które nie mają zestawów znaków niezgodnych z ASCII)

questionAnswers(3)

yourAnswerToTheQuestion