Countries sometimes change which currency symbol they're using.  This is most obvious for countries using the Euro (wikipedia currently says those are currently: Austria, Belgium, Cyprus, Finland, France, Germany, Greece, Ireland, Italy, Luxembourg, Malta, Netherlands, Portugal, Slovenia, Spain, Mayotte, Monaco, Saint Pierre and Miquelon, San Marino, Vatican City, Akrotiri and Dhekelia, Andorra, Kosovo, Montenegro, Saint Barthélemy, and Saint Martin)

Other countries have changed their currency symbol as well, either because of a political shift, currency devaluation or other causes.  In the future Slovakia, Lithuania, Estonia, Bulgaria, Czech Republic, Hungary, Latvia, Poland and Romania are expected to adopt a Euro.

So what happens if you use a locale that changes currency?  How do you get that set as your currency symbol in Windows or .Net?

The easiest solution is to use the Regional Options control panel (Windows Key + r then type intl.cpl and OK opens the control panel, or you can select it from the control panel).  From intl.cpl you can use the advanced settings to change the format of the currency symbol and enter the Euro symbol.  This change only impacts the current locale for the current user though, and has to be reset for each user or if the user changes their locale to something else and then back.

Another option for Vista, Server 2008 & .Net 2.0+ is to create a custom culture with the desired symbol.  Ironically anyone with the locale already set isn't going to see the update because the old symbol is set in their currency.  The advantage of the custom locale solution is that it provides the ability to update the currency name (and other data) as well as the symbol, and that it persists and impacts non-current locales.

So a complete solution is probably to create a custom locale and to also change the user override.  I have a link to the custom locale tool at or directly from or search for "Locale Builder" on msdn.