ASP.Net 表单上的奇怪文化行为
Odd Culture behaviour on ASP.Net forms
基于此代码(taken/modified 来自 Microsoft 站点)...
int i = 100;
string op = "";
// Creates/Displays a CultureInfo for English in Belize.
CultureInfo bz = new CultureInfo("en-BZ");
op += (i.ToString("c", bz)) + "<br/>";
// Creates/Displays CultureInfo for English in GB.
CultureInfo gb = new CultureInfo("en-GB");
op += (i.ToString("c", gb)) + "<br/>";
// Creates/Displays a CultureInfo for English in the U.S.
CultureInfo us = new CultureInfo("en-US");
op += (i.ToString("c", us)) + "<br/>";
// Creates/Displays a CultureInfo for Danish in Denmark.
CultureInfo dk = new CultureInfo("da-DK");
op += (i.ToString("c", dk)) + "<br/>";
litOutput.Text = op;
谁能解释为什么这是我得到的输出..(注意第三个,据说是 en-US)
BZ0.00
£100.00
100,00 €
kr. 100,00
..以及我需要做些什么来修复它。这是最近才出现的问题,因为我认为有人在服务器上安装了 "play"。
Update/additional 信息
如果我 运行 在服务器上的独立应用程序中使用相同的代码,我会得到美国文化的预期结果,只有当代码在 ASPNet 中 运行变得奇怪。
TIA。
经过几个小时的搜索,一个接一个地阅读 MS 页面,我终于在注册表中找到了答案。起初以为有人在修补。
HKEY_USERS/.DEFAULT/Control Panel/International
下的默认设置已更改,因此国家 code/name/id 全部指向美国,但格式为欧洲。
将这些交换为正确的值(通过将国家/地区交换为正确的值,或将格式更改为美国风格)解决了问题。
感谢您的帮助。希望这个回答对其他人有帮助。
基于此代码(taken/modified 来自 Microsoft 站点)...
int i = 100;
string op = "";
// Creates/Displays a CultureInfo for English in Belize.
CultureInfo bz = new CultureInfo("en-BZ");
op += (i.ToString("c", bz)) + "<br/>";
// Creates/Displays CultureInfo for English in GB.
CultureInfo gb = new CultureInfo("en-GB");
op += (i.ToString("c", gb)) + "<br/>";
// Creates/Displays a CultureInfo for English in the U.S.
CultureInfo us = new CultureInfo("en-US");
op += (i.ToString("c", us)) + "<br/>";
// Creates/Displays a CultureInfo for Danish in Denmark.
CultureInfo dk = new CultureInfo("da-DK");
op += (i.ToString("c", dk)) + "<br/>";
litOutput.Text = op;
谁能解释为什么这是我得到的输出..(注意第三个,据说是 en-US)
BZ0.00
£100.00
100,00 €
kr. 100,00
..以及我需要做些什么来修复它。这是最近才出现的问题,因为我认为有人在服务器上安装了 "play"。
Update/additional 信息
如果我 运行 在服务器上的独立应用程序中使用相同的代码,我会得到美国文化的预期结果,只有当代码在 ASPNet 中 运行变得奇怪。
TIA。
经过几个小时的搜索,一个接一个地阅读 MS 页面,我终于在注册表中找到了答案。起初以为有人在修补。
HKEY_USERS/.DEFAULT/Control Panel/International
下的默认设置已更改,因此国家 code/name/id 全部指向美国,但格式为欧洲。
将这些交换为正确的值(通过将国家/地区交换为正确的值,或将格式更改为美国风格)解决了问题。
感谢您的帮助。希望这个回答对其他人有帮助。