我需要执行对case和accents不敏感的SELECT查询.出于演示目的,我创建了一个这样的表:
create table table
(
column text collate nocase
);
insert into table values ('A');
insert into table values ('a');
insert into table values ('Á');
insert into table values ('á');
create index table_cloumn_Index
on table (column collate nocase);
Run Code Online (Sandbox Code Playgroud)
然后,我在执行以下查询时得到这些结果:
SELECT * FROM table WHERE column LIKE 'a';
> A
> a
SELECT * FROM table WHERE column LIKE 'á';
> á
SELECT * FROM table WHERE column LIKE 'Á';
> Á
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题,以便以下任何查询的结果如下:
> A
> a
> Á
> á …Run Code Online (Sandbox Code Playgroud) 我正在修改一个全球化的Web应用程序,它为每个登录用户使用存储的CultureInfo.
客户希望时间数据输入被本地化.显示不是问题,因为格式化已经可用.但是我需要检测当前cultureinfo是24小时还是上午/下午所以我可以显示正确的输入框(而不仅仅是文本字段).
我最初的想法是检查CultureInfo的DateTimeInfo属性,看看ShortTimePattern是否包含大写H或小写h,但这对我来说不够强大.
有没有更好的办法?我已经阅读了两者的类属性,但除非我遗漏了什么,否则我看不到任何现有的方法或属性.
我有一个字符串,其中包含一个时间戳(yyyy-mm-dd hh:mm:ss).我可以CultureInfo根据我得到的其他信息创建一个对象.因此,我知道时间戳所在的国家/地区.时间戳不是UTC/GMT.
假设时间戳来自Indonesia (new CultureInfo("id-ID")),意味着该字符串是由下面的代码或类似代码创建的.
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)
这意味着该字符串包含印度尼西亚当地时间.我知道我的时区,但我不知道如何将印度尼西亚时间转换为UTC/GMT,所以我可以使用UTC/GMT对象TimeZoneInfo.我自己的时区可能在同一时区,也可能不在同一时区.
有没有,这个信息是连接的?
CultureInfo 有很多属性,肯定有些属性可以用来获得时区,somwhere?
我可能会补充一点,我发现整个系统非常混乱,所以我觉得我认为事情是如何运作的.
我有一个C#应用程序,必须在具有不同文化设置的计算机上运行.没问题,我想,它只会查找启动当前文化在机器上的内容,并为我做一切.好吧不,它会让事情变得不对劲.
我有一台Windows XP机器,区域和语言选项中的所有内容都设置为英语,但是当我的应用程序启动时,它报告我的CurrentCulture是en-GB和我CurrentUICulture的en-US.
如何让我的程序只使用PC设置的任何内容?
如果它有任何区别,这是一个Windows服务应用程序.
谢谢
我在ASP.NET中开发了一个多语言站点,它可以检测用户的系统文化,并以适当的语言显示内容.
这一切都运作良好,但我的客户已经有一个SEO审计.SEO机构表示担心这不是一个好的SEO实践,因为每种语言都没有唯一的URL.
他们建议该网站可能被指控隐藏,并且谷歌可能无法为每种不同的语言正确索引网站.
关于这些是否是有效问题的任何想法,以及是否有为网站的每个语言版本提供唯一URL的优势?
我有一个解决一些文本的多线程应用程序,它需要使用英文文化信息来解析这个文本中的数字.所以,我不想每次调用解析函数时都创建EngCulture.目前我正在将EngCulture作为参数传递,但我对此并不满意.我想将EngCulture定义为静态成员,因此它将由线程共享.
Msdn文档说"这种类型的任何公共静态(在Visual Basic中共享)成员都是线程安全的.任何实例成员都不能保证是线程安全的." 我只是使用以下函数,所以我怎么知道TryParse是否使用EngCulture的任何实例成员?
public static CultureInfo EngCulture = new CultureInfo("en-US", false);
void parser()
{
if (int.TryParse(value, NumberStyles.Number, EngCulture, out num))...
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作2个下拉列表.
最上面的一个提供所有文化,(但没有重复).示例:英语,西班牙语,菲律宾语
从顶部列表中选择后,底部列表将显示任何特定类型.
我现在用这个代码作为我的顶级名单.
foreach (CultureInfo cultureInfo in CultureInfo.GetCultures(CultureTypes.NeutralCultures))
Run Code Online (Sandbox Code Playgroud)
然而,它并不显示菲律宾语(菲律宾) 我宁可不使用GetCultures(CultureTypes.AllCultures)),因为它显示了太多的一次.
看起来我可能需要将NeutralCultures加载到IList中.然后遍历AllCultures以确保它的ThreeLetterISOLanguageName在列表中,如果不添加它.
有一个最好的做法吗?
谢谢
为什么英语(加勒比海)的文化名称为"en-029"?
我知道"en-CA"用于英语(加拿大),但为什么029?它意味着什么?为什么选择它?
如何调用ToString()对象并使其使用不变文化?在ToString()实现的对象上有重载IConvertible(比如bool,int,float ..),但如果有问题的对象怎么IConvertible办?
我对MVC中的文化变化有好奇心.我试过两种方式,但显然我错了.
在我的Web.config中,我有:
<globalization uiCulture="auto" culture="auto" />
Run Code Online (Sandbox Code Playgroud)
这就是我试图改变线程文化的方式:
<li>@Html.ActionLink("Eng", "ChangeCulture", "Home", new { lang="en-US"}, new { @class = "languageSelectorEnglish" })</li>
Run Code Online (Sandbox Code Playgroud)
第一种方法
我有以下控制器:
public void ChangeCulture(string lang)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
Response.Cookies.Remove("Language");
var langCookie = new HttpCookie("Language");
langCookie["Language"] = lang;
langCookie.Value = lang;
langCookie.Expires = System.DateTime.Now.AddDays(21);
Response.Cookies.Add(langCookie);
Response.Redirect(Request.UrlReferrer.ToString());
}
Run Code Online (Sandbox Code Playgroud)
第二种方法
public ActionResult ChangeCulture(string lang)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
// Split the url to url + query string
var fullUrl= Request.UrlReferrer.ToString();
var questionMarkIndex = fullUrl.IndexOf('?');
string queryString …Run Code Online (Sandbox Code Playgroud) cultureinfo ×10
c# ×7
.net ×3
asp.net ×2
culture ×2
asp.net-mvc ×1
diacritics ×1
formatting ×1
ios ×1
multilingual ×1
seo ×1
sqlite ×1
timezone ×1