First, I would ensure that you are using the proper page encoding. You can utilize headers or override it with the <cfprocessingdirective>. I currently use utf-8.
Secondly, how are you generating the characters? Are you using their HTML entity codes?
For example, to output: This is an A character with a grave: À
You need to be generating: <p>This is an A character with a grave: à</p>
You can optionally use the entity code, like: <p>This is an A character with a grave: &##224;</p> (Note the double # to ensure ColdFusion does not assume you wanted a variable/BIF there.
I thought it was all UTF-8 as the response headers in Chrome said so. However, apparently ColdFusion was not processing as UTF-8 because the <cfprocessingdirective pageencoding="utf-8" /> tag did fix the issue. I had to place the tag in every page as it doesn't seem to work just in Application.cfc
There was a secondary issue that I didn't explain here. I store the translated text in .json files. So when <cffile /> was reading the translations it wasn't using UTF-8 either. Adding the charset="utf-8" quickly solved that issue as well.
Thanks for the help! I figured it would be something easy like that but didn't know where to start looking. This is our first translated app.
Very cool! Glad I could help. Internationalization, oh man, that's gonna be a fun challenge!
I think ColdFusion has tons of great Locale-based functions to help ensure that it caters itself to the consumer as best it can.
The <cfprocessingdirective> is usually used to encapsulate information that you want to modify whitespace or character encoding on, but are you using <cfcontent> without specifying the encoding anywhere? Usually, CF outputs content encoded as UTF-8 (though it operates internally at UTF-16), but if a <cfcontent> is used at one point and doesn't specify the encoding, then CF is sometimes set to auto-determine the encoding.
I'm not sure if setting a header from the server-side down is an option, or, if you could utilize a meta tag to do likewise.