ASP and Regional Setting specific Variables.

Satori used Ask the Experts™
Okay, here's my problem. I've got about 2500 Win2k servers running IIS 5.0. Of these, maybe 400 are in a London Datacenter, serving English customers.

On these servers, the system locale and the locale for all users on the system is configured for English (UK). When an ASP page is hit that does things like "Response.Write Now" or "Response.Write formatcurrency("50", 2)" I get United States formatted date/time output, and dollar signs instead of pounds.

If I log in a user on the server console and lock it, ASP reports these calls in UK format.

Why is Oleaut32.dll handling this incorrectly? How can I get this working so that the web server reports what is configured as the system locale when no-one is logged in?

This problem is really bothering me. Any help would be greatly appreciated!


Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Wow, an interesting and esoteric problem. So would it mean perhaps that in fact the .dll would need to be re-written?


Possibly, but Microsoft's CRT group should have an update if it's a legitimate bug. So far the Premeire support group has been completely useless, and have not escalated this issue. Rather surprising - I worked in that group back in the day, and we took much better care of our customers then!

There have GOT to be a million people who have this working properly though. I'm sure that there's something, a reghack maybe, that I'm missing. I've tried all the obvious stuff, like changing the registry keys that correspond with the old win.ini file international settings, but still no joy. On one of these boxes, I did a find and replace on every $ symbol with a pound sign. Nothing. Very frustrating - I've been wresling with this issue for almost a month now.


Okay, I see two ways to fix this so far, but I'm looking for something a little smoother...

1) setting Session.LCID = 2057 in each ASP page that uses such regional specific variables.

2) Edit the registry. The key value for English US is 409 - search and replace it with English UK which is 809. check the other default USER and MACHINE regional settings and  change to fix decimal notation problems. After a reboot all decimal notation problems and incorrect currency symbols rectified. Push this with a script?

Option one doesn't really address the problem, it's just a band-aid. Option two does the trick, but I'm not 100% that I'm changing only the things that need to be changed. I might very well be breaking something here...

I'd really like some help with this. If anyone can hook me up, I'd greatly appreciate it.



Exploring SQL Server 2016: Fundamentals


This was raised ages ago, so long ago that I suspect that the PAQ doesn't exist anymore. As I recall its not so much a bug as a missing facility. In that the default format is US (and I'm not sure to what extent the locale setting has an effect) but VB/Access etc have the ability to change this setting. However no such facilty exists with VB Script or via ADO etc.

I can't come up with a solution for you, but if you are working for an ISP your fix might possibly cause problems for people who have used a work around of swapping the MM and DD values around. (rather than using dd-mmm-yy which works regardless of the settings).

Just a thought that might save your neck from angry punters!

I've had this.. was banging my head for ages before I noticed the Set Default button

Start>Settings>Control Panel>Regional Options

At the bottom is a button 'Set Default' click this and change to English(UK) this should sort it



Please leave any comments here within the next seven days.


EE Cleanup Volunteer
PAQed, with points refunded (200)

E-E Admin

Do more with

Expert Office

Start 7-Day Free Trial