See the question and my original answer on StackOverflow

To ensure it will always work, for this specific example, you can replace the non ASCII characters using Html entities, like this: Bibliothèque. But this is not always practical in general.

Otherwise, there are other various ways to make it work:

  • use byte order mark encoding (sometimes called 'signature', or BOM, by editors) and save the file as UTF-8
  • add a META character encoding to your html file.
  • define what HTTP headers will be sent to the client using the globalization element in the application web.config (responseEncoding, etc.)
  • define what HTTP headers will be sent to the client using the ASP.NET @page directive

The best is to make sure all this is consistent in your application. UTF-8 support is now widespread, so it's a good choice as the encoding.

An interesting article on the encoding subject :The Definitive Guide to Web Character Encoding