从未来的这个问题,我不知道为什么ä和ae是不同的(这是有道理的),但ß并ss视为相等.即使这个问题似乎是相关的,我也没有找到答案,甚至提到"这ß将与SS德国或类似的相提并论",但不是为什么.
我发现MSDN上唯一的资源是:如何:比较字符串
这里提到以下但也缺乏原因:
// "They dance in the street."
// Linguistically (in Windows), "ss" is equal to
// the German essetz: 'ß' character in both en-US and de-DE cultures.
.....
Run Code Online (Sandbox Code Playgroud)
那么,为什么要true对de-DE文化或任何其他文化进行评估:
var ci = new CultureInfo("de-DE");
int result = ci.CompareInfo.Compare("strasse", "straße", CompareOptions.IgnoreNonSpace); // 0
bool equals = String.Equals("strasse", "straße", StringComparison.CurrentCulture); // true
equals = String.Equals("strasse", …Run Code Online (Sandbox Code Playgroud) 我疯了.我只想将整个Asp.net核心应用程序中使用的文化设置为"en-US".但似乎没有任何效果.我在哪里设置整个应用程序的文化?我对客户端浏览器文化并不感兴趣.唯一似乎改变它的是改变Windows的语言设置.我只是希望从应用程序本身而不是客户端确定文化.
到目前为止我尝试了什么:
<system.web><globalization uiCulture="en" culture="en-US" /></system.web>在web.config中设置System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;并CurrentUICulture在Startup.Configure中,甚至在控制器中.使用app.UseRequestLocalization(..如下所示
var enUsCulture = new CultureInfo("en-US");
var localizationOptions = new RequestLocalizationOptions()
{
SupportedCultures = new List<CultureInfo>()
{
enUsCulture
},
SupportedUICultures = new List<CultureInfo>()
{
enUsCulture
},
DefaultRequestCulture = new RequestCulture(enUsCulture),
FallBackToParentCultures = false,
FallBackToParentUICultures = false,
RequestCultureProviders = null
};
app.UseRequestLocalization(localizationOptions);
Run Code Online (Sandbox Code Playgroud)但似乎没有任何东西可以将CurrencyDecimalSeparator从(nl-NL)更改为(en-US).
如何设定文化?
编辑:
@soren这是configure方法的样子.我已经设置了一个断点,DetermineProviderCultureResult但在访问该网站时它从未被击中过.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, FinOsDbContext context)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage(); …Run Code Online (Sandbox Code Playgroud)