One problem that has repeatedly cropped up when developing in Java is
strange error messages in our unit tests for certain text manipulation
tests when running on a freshly installed Ubuntu desktop.
They are all related to Ubuntu's default British locale:
This was causing files checked out of CVS to be in Unicode (UTF-8) format rather than ISO-8859-1 and so the British pound sign (£) was being encoded as a double-byte (rather than single-byte) character in the file.
To check which locale you currently have as your default just run:
Changing the default locale is a little different on Ubuntu compared to most Linux distros, these are the steps we needed to go through to get it changed:
Add the locale to the list of 'supported locales'
Edit
Regenerate the supported locales
Run
Change the default locale
Edit
UPDATE '09: An old collegue has suggested that this change should now be made in
Reboot!
Rerun
They are all related to Ubuntu's default British locale:
en_GB.UTF-8
This was causing files checked out of CVS to be in Unicode (UTF-8) format rather than ISO-8859-1 and so the British pound sign (£) was being encoded as a double-byte (rather than single-byte) character in the file.
To check which locale you currently have as your default just run:
locale
Changing the default locale is a little different on Ubuntu compared to most Linux distros, these are the steps we needed to go through to get it changed:
Add the locale to the list of 'supported locales'
Edit
/var/lib/locales/supported.d/local
and add the following line:en_GB ISO-8859-1
Regenerate the supported locales
Run
sudo dpkg-reconfigure locales
Change the default locale
Edit
/etc/environment
and ensure
the LANG
and LANGUAGE
lines read as follows:LANG="en_GB"
LANGUAGE="en_GB:en"
UPDATE '09: An old collegue has suggested that this change should now be made in
/etc/default/locale
rather than /etc/environment
- Thanks Guy!Reboot!
Rerun
locale
to check that your default locale is now en_GB