I was using Microsoft SQL server and in the end the only two things I needed to do were:
- Check the "Enable High ASCII characters and Unicode for data sources configured for non-Latin characters" option in the DSN
- Prefix multi-byte characters with an N on insert/update. E.g. INSERT INTO table (Text) values(N'#form.text#') or UPDATE table SET Text = N'#form.text#'. From what I understand this is NOT required for MySQL.
As interesting were the things I did, then undid and my app still *appeared* to work. Can't yet prove whether they are required or not:
- Set encoding for form and URL scopes in application.cfc: SetEncoding("form", "utf-8"); and SetEncoding("url", "utf-8");. Appears to me that utf-8 is default CF encoding so I'm not sure these are required.
- Add metadata in HTML head tag: . Again, worked without, but this seems like at the very least a good thing to do, so I put it back in.
Got to do a lot more reading on this.
Anyone else got any tips/experiences to share on this or i18n in general?
Update: More on the "enable" checkbox for the DSN.