Hi...
It's a big topic... but I'll have a stab...
Chinese visitors apart, I guess you mean charset problems such as an "Æ" in Finland appears as a "™" here in Turkey?
Well you are right, a browser has to decide which character set to use to display a page and gets a bit of help from the html coding with the "charset" metatag. These days, browsers have good international support and most things display OK, but you can sometimes help by using metatags:
Most people in the US use this metatag:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
I prefer to use the european characterset because I'm targetting EU and east european referrals for my english pages:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
(In practice the pages will look identical most of the time, but they rank better in google.ro, for example, even though my pages are in english and I'm using a US server.)
You shouldn't/can't use any special character codes in your CSS and javascript functions, and they are best left as a-z A-Z 0-9 to avoid any problems.
For your javascript and html
text you should use only ASCII characters too... if you need to make "Ü" or an "&" you should use the "escape characters":
ie ¨ and & to be sure that they will display the same in all character sets.
eg <h1>Bed & Breakfast </h1>
- but even that's not always necessary - just good practice
So short answer.... bash in your text, let the browser sort out the display... don't lose any sleep over it...
Cheers,
Paz.