标签: culture

当值与字符串相互转换时,SQL Server 是否考虑文化/区域设置?

我正在尝试更新大型代码库以在格式化/解析值时正确指定CultureInfo和/或。IFormatProvider例如,当解析从用户那里获得的值时,我CultureInfo.CurrentCulture在调用 时传递TryParse,而当将浮点数转换为字符串以进行持久化时,我CultureInfo.InvariantCulture在调用 时传递ToString

我的问题是:生成 SQL 查询时,我应该使用不变区域性、SQL 服务器区域性还是什么来格式化数字等?也就是说,如果我的计算机设置为德语(德国),那么以下哪个查询是正确的?

select foo from bar where baz = 123.45
Run Code Online (Sandbox Code Playgroud)

或者

select foo from bar where baz = 123,45
Run Code Online (Sandbox Code Playgroud)

同样,如果我使用 SQLCAST将浮点值转换为字符串,SQL 将使用什么区域设置进行转换?

我确实搜索了 SQL 文档,但到目前为止我找不到任何好的答案。我确实找到了一些有关日期格式的信息(SET DATEFORMAT 等),但仅此而已。

注意:我意识到将输入传递给 SQL 查询的首选方法是通过参数,因此为了论证,我们假设我有充分的理由将它们格式化为查询字符串。此外,处理查询输入只是更广泛问题的一部分。

sql sql-server culture

2
推荐指数
1
解决办法
3768
查看次数

c#datetime格式

我希望我的DateTime具有特定的格式,具体取决于当前的文化.

所以我试试这个:

dateTime.ToString("dd/MM/yyyy hh:mm");
Run Code Online (Sandbox Code Playgroud)

这部分正常,/被文化特定的分隔符取代.但是根据文化的不同,日期和月份顺序不会切换(如MM/dd).

使用.ToString("g")作品,但不包括前导零.

我该如何做到这一点?

c# format culture datetime

2
推荐指数
1
解决办法
2万
查看次数

如何在C#中改变一个数字的文化?

我正在向paypal发送参数作为隐藏形式的变量.

但我的网站文化是丹麦语.所以"50,00"是"amount_1"的值

<input type="hidden" name="amount_1" value="50,00" />
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码将50转换为"50,00"

item.PricePaid.ToString("#.00")
Run Code Online (Sandbox Code Playgroud)

我相信这个数字应该是这样的:"1234.56"有没有办法在这个过程中将文化设置为en-US?(不是宽边)还是更好的方法呢?

谢谢!

c# asp.net string culture currentculture

2
推荐指数
1
解决办法
500
查看次数

C#字符串比较'ö''oe''o'

可能重复:
如何识别拼写不同的相似单词

在比较这三个字符串:“ voest”,“ vost”和“vöst”(德国文化)时,我试图使它返回true,因为它是同一个词。(实际上,只有oe和ö相同,但是例如对于DB归类CI来说是相同的,这是正确的,因为'vost'是错误键入的'voest')

无论我提供给该方法什么参数,string.Compare(..)/ string.Equals(..)始终返回false。

如何使string.Compare()/ Equals(..)返回true?

c# culture string-comparison

2
推荐指数
1
解决办法
1568
查看次数

为什么"我"被"ı"取代

我收到了一个应用程序的崩溃报告,该应用程序尝试从之前编写的文件中读取XML.在请求用户将文件发送给我之后,我将其与应该写的文件进行了比较,发现了一个我之前没有遇到过的奇怪问题.

一些(但不是全部)i角色已被替换为?- 无点的我.例如,一个名为"title"的节点很好,但名为"initialdirectory"的节点有第一个被替换,第二个被单独留下,即?nitialdirectory.

直到今天,我甚至都不知道有这样一个角色,但现在我做了,我只是不知道它是如何编写的那样 - XML是XmlWriter用UTF8编码编写的.只是一般的日常写作,没有什么复杂的.

我通常(好吧,因为得到Resharper并且它在跳过参数StringComparison.OrdinalIgnoreCase时对我大吼大叫)在做IndexOf等时使用,但我在编写数据时应该如何做到这一点我不知所措,除非我应该开始改变线程文化.

以前有没有人遇到类似的问题,如果有的话,最好的方法是什么?

c# xml culture localization

2
推荐指数
1
解决办法
190
查看次数

CultureInfo.InvariantCulture in plain english

我知道日期/数字的文化规则对于整本书来说已经足够了,我想我有一个简单的问题.

使用InvariantCulture是否基本上意味着您明确定义将输入/显示的值(日期/数字/等)的文化?它会覆盖任何其他文化设置(例如用户代理的设置)?

如果应用程序是为一个且只有一种文化的受众构建的,那么使用InvariantCulture并定义每次输入/显示值的方式是否合理?

c# culture datetime cultureinfo

2
推荐指数
3
解决办法
3343
查看次数

Kendo DatePicker 文化无法正常工作

我想将 Kendo Datepicker 本地化为我的文化“is-IS”,但由于某种原因它不能\xc2\xb4t 正常工作。这是代码示例:

\n\n
$("#RegisterDatePicker").kendoDatePicker({\n    start: "month",\n    culture: "is-IS",\n    value: new Date(),\n    format: "dd.MMMM yyyy",\n    events: {\n        change: "registerDatePicker_OnChange"\n    }\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

该文化似乎恢复到其默认本地化“en-US”。我知道这种文化应该与 Datepicker 一起使用,因为每当我在 Razor 引擎中声明 Datepicker 时,它都会正确呈现。Here\xc2\xb4s 来自 Razor 的代码示例:

\n\n
@(Html.Kendo().DatePicker()\n  .Name("RegisterDatePicker")\n  .Start(CalendarView.Month)\n  .Value(DateTime.Now)\n  .Format("dd.MMMM yyyy")\n  .Events(e => e.Change("registerDatePicker_OnChange"))\n  .Culture("is-IS")\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

谁能指出我的日期选择器的脚本声明有什么问题吗?

\n

asp.net-mvc culture razor kendo-ui kendo-asp.net-mvc

2
推荐指数
1
解决办法
1万
查看次数

C#DateTime ToString标准文化格式

我可以为特定文化更改DateTime的标准输出格式.例:

class Program
{
    static void Main(string[] args)
    {
        PrintCultureDateTime("ca-ES");
        PrintCultureDateTime("es-ES");
        PrintCultureDateTime("en-US");
        PrintCultureDateTime("en-GB");
        PrintCultureDateTime("pt-PT");
    }

    public static void PrintCultureDateTime(string culture)
    {
        string result = new DateTime(2017, 10, 1).ToString("d", 
            CultureInfo.GetCultureInfo(culture));
        Console.WriteLine(string.Format("{0}: {1}", culture, result));
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

ca-ES: 1/10/2017
es-ES: 01/10/2017
en-US: 10/1/2017
en-GB: 01/10/2017
pt-PT: 01/10/2017
Run Code Online (Sandbox Code Playgroud)

我想要的是使用标准"d"格式或其他标准格式的日期和月份两位数字,以便修复DateTime字符串的大小.像那样的输出:

ca-ES: 01/10/2017
es-ES: 01/10/2017
en-US: 10/01/2017
en-GB: 01/10/2017
pt-PT: 01/10/2017
Run Code Online (Sandbox Code Playgroud)

c# culture datetime

2
推荐指数
1
解决办法
1139
查看次数

使用C#在String或Char上使用ToString()时,在什么情况下需要提供CultureInfo IFormatProvider?

用C#在什么情况下,我需要提供一个CultureInfo IFormatProvider使用时ToString()String还是Char

我通过数字或日期转换得到它,例如

(-10000.4).ToString(provider: new System.Globalization.CultureInfo("es-ES"));
(-10000.4).ToString(provider: new System.Globalization.CultureInfo("en-US"));

DateTime.Now.ToString(provider: new System.Globalization.CultureInfo("es-ES"));
DateTime.Now.ToString(provider: new System.Globalization.CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

赠送:

-10000,4
-10000.4
01/05/2018 22:49:09
5/1/2018 10:49:09 PM
Run Code Online (Sandbox Code Playgroud)

但是以下内容如何:

"Some string".ToString(provider: new System.Globalization.CultureInfo("es-ES"));
"Some string".ToString(provider: new System.Globalization.CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

我可能会使用哪些字符串受文化影响?

同样的char.

.net c# culture tostring

2
推荐指数
1
解决办法
76
查看次数

如何为整个 winform 应用程序设置文化

我想为整个 winform 应用程序设置文化。
我怎样才能做到这一点?
Program.cs像这样改变了我的文件:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Divar
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            var culture = new CultureInfo("en-US");
            CultureInfo.DefaultThreadCurrentCulture = culture;
            CultureInfo.DefaultThreadCurrentUICulture = culture;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new RadForm1());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我做对了吗?


还有另一个链接:(请看一看)
https://www.c-sharpcorner.com/forums/set-cultureinfo-for-winform-application

这取得了有限的成功,因此在 InitializeComponent() 之前的“Form1”顶部,我放置了:

    System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB");
    Application.CurrentCulture = cultureInfo;
    System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-GB");
Run Code Online (Sandbox Code Playgroud)

是否有必要在每种形式的 InitializeComponent() …

c# culture winforms .net-4.6.2

2
推荐指数
1
解决办法
7084
查看次数