I tried to work on this problem, but seems that the only way for Geany to force to use an encoding is to have a corresponding line in the beginning of the file.
If file contains UTF-8 characters geany will use this locale.
Among other things i tried the following bellow. You can also give a try your self , in case that works better in your machine.
To switch localle of my system to Greek
ISO-8859-7 (it was
en_US.UTF-8 before). I had to first install the new local using
To convert a test file from
UTF-8 to desired locale (
ISO-8859-7 in my case) using command
iconv -f UTF-8 -t ISO-8859-7 c.txt --output=c2.txt
To change geany preferences , in Preferences-Files Tab applying
Greek ISO-8859-7 encoding both for new files and also for "Default Encoding (existing non Unicode Files)"
PS: Setting can also be verified/changed directly by look/edit file
~/.config/geany/geany.conf and look for the lines
pref_editor_default_new_encoding=UTF-8 #changed to ISO-8859-7 and line
pref_editor_default_open_encoding=None #changed to ISO-8859-7
- Then only thing that really worked is to insert in the beginning of the file the line :
# geany_encoding=ISO-8859-7 #
This solution is described on the Geany online manual - Infile encoding specification Section.
As a workaround to avoid opening all your files one by one and appending the above line you could use:
echo -e "# geany_encoding=ISO-8859-7 #\n$(cat c.txt)" >c.txt
You can also make a loop to quickly "geany-convert" all your files; something like this:
for file in "$(find . -type f -name "*.txt");do echo -e "# geany_encoding=ISO-8859-7 #\n$(cat $file)" >$file;done
I hope above ideas to help you solve your problem.
You could also check and ask geany devs if forcing encoding during opening a file is in the future plans of Geany.
PS: You could always open the file as it is in Geany, press
reload as <your encoding> and save. This should save the file in the new encoding.