How to assign nil to all TEncoding.FStandardEncodings? lazarus / 62-General ---------------------------------------------------------------------- engkin · 2018-04-23 18:36 Unit SysUtils has a singleton class TEncoding. When changing DefaultSystemCodePage, like in Lazarus under Windows, TEncoding.Default.EncodingName does not get updated. In theory calling TEncoding.FreeEncodings should be enough except that it does not assign nil to TEncoding.FStandardEncodings: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   for E := Low(FStandardEncodings) to High(FStandardEncodings) do    FStandardEncodings[E].Free; The only way I found to get over this issue is to create a descendant class like TMBCSEncoding to reach to the strict private constructor: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i   TEncoding = class  strict private...    class constructor Create;...class constructor TEncoding.Create;var  E: TStandardEncoding;begin  for E := Low(FStandardEncodings) to High(FStandardEncodings) do    FStandardEncodings[E] := nil;end; Is that a bug or intended design? Edit: Bug reported: 33681 and fixed!