On Fri, Jan 6, 2012 at 1:43 PM, Mike Dewhirst <[email protected]> wrote: > I think I have found a workaround but it will probably blow up in my face > due to encoding/decoding things I don't fully understand. > > Can anyone comment on the robustness of calling the following method in a > model's save() ...
Well... it will fail as soon as you have an sample of magnetite or haematite (Fe3O4 and Fe2O3 respectively) -- your code capitalizes all characters in the final else block, including the "e" in Fe. However, if you fix the logic problem, and you set the server encoding of your page to be UTF-8, and serve it with UTF-8 page headers, it should work fine -- or at least as well as the font on your customer's browser allows. See [1] for more details on what you need to do to serve UTF-8. The other option is to use the <sub> HTML tag; this provides slightly better typographic support, since it's actually a typographic subscript, rather than a unicode codepoint trying to emulate the typography. This also won't be subject to any UTF-8 encoding problems. If you look at the Wikipedia page for Iron Oxide [2], you'll see that they use the <sub> approach. Implementing a Django template filter to convert "Fe2O3" into "Fe<sub>2</sub>O<sub>3</sub>" wouldn't be too hard to do. [1] http://www.w3.org/International/articles/serving-xhtml/Overview.en.php [2] http://en.wikipedia.org/wiki/Iron_oxide Yours, Russ Magee %-) -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

