天道酬勤,学无止境

cultureinfo

如何强制我的 C# windows 窗体使用阿拉伯数字?(How to Force my C# windows forms to use arabic number?)

问题 我试图强制我的表单使用阿拉伯格式,例如将 (1-2-3-4-..,etc) 数字显示为 (٠ , ١ , ٢ , ٣ , ٤ , ٥ , ٦ , ٧ , ٨ , ٩ ) 在我的所有表单中,无论是Textbox 、 lables还是其他任何东西 我搜索并发现了很多关于这个问题的问题,其中大多数都不起作用,而我认为另一个似乎不是好的答案,就像这里接受的答案一样,如下所示,我在表单加载上所做的尝试对它没有影响我的问题 这是一个公认的答案,说文化信息不会有帮助,对吗?? 因为我不认为这个答案是正确的 所以请如果有人可以帮助我 private void F0102_Load(object sender, EventArgs e) { CultureInfo ar_culture = new CultureInfo("ar-SA"); Thread.CurrentThread.CurrentCulture = ar_culture; Thread.CurrentThread.CurrentUICulture = ar_culture; } 回答1 大多数阿拉伯人使用西方阿拉伯数字(1、2、3...)进行数学运算。 因此,即使使用ar-SA文化,您在格式化数字时也会得到这些。 使用您自己的格式化函数来获取东方阿拉伯数字。 public static string ToArabic(long

2021-10-23 14:34:06    分类:技术分享    c#   .net-4.0   cultureinfo

ASP.NET 中的自定义文化信息(Custom Culture info in ASP.NET)

问题 我创建了一个 CustomCulture 类表单 CultureInfo。 这是我的代码: public class CustomCulture : CultureInfo { 私人字符串_parent; 私人字符串_name; 私人字符串_description; public CustomCulture(string parentCulture, string myCultureName) : base(parentCulture) { _parent = parentCulture; _name = myCultureName; _description = String.Format("custom culture({0})", _name); } public override string Name { get { return _parent + "-" + _name; } } public override CultureInfo Parent { get { return new CultureInfo(_parent); } } public override string EnglishName { get { return _description; } } public override string NativeName { get {

2021-10-20 11:50:44    分类:技术分享    asp.net   cultureinfo

将数字转换为特定于文化的(Convert number into culture specific)

问题 我有一个像202667.4这样的202667.4 。 我想根据文化将其转换为数字。 例如: 在“de”(德语)中,数字应为202.667,40 。 任何帮助将不胜感激。 谢谢。 回答1 如果要以特定于文化的格式表示现有数字(例如double ),请尝试格式化: https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings double source = 202667.4; // "n" - ... group separators, and a decimal separator with optional negative sign // "de" - German culture string result = source.ToString("n", CultureInfo.GetCultureInfo("de")); Console.WriteLine(result); 结果 202.667,40 如果给定了一个string并且想要一个数字,请输入Parse ( TryParse ): string data = "202.667,40"; double result = double.Parse(data, CultureInfo

2021-10-20 06:11:00    分类:技术分享    c#   localization   number-formatting   cultureinfo   culture

当用户改变系统文化时如何接收事件(How to receive event when user changes system's culture)

问题 当我的应用程序以指定的文化运行时。 不要关闭应用程序,用户会更改系统的文化,例如:将数字小数点分隔符从“。”更改。 到 ”,”。 我的应用程序如何捕获此事件。 谢谢。 注释: C# 2.0,Windows 窗体。 回答1 您可以处理SystemEvents.UserPreferenceChanged事件: void SystemEvents.UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) { // Regional settings have changed if (e.Category == UserPreferenceCategory.Locale) { ... } } 回答2 如果您想跟踪系统语言更改,那么您有 SystemEvents 对象,其中包含您可以附加到的 UserPreferenceChanged 事件。 样本: Microsoft.Win32.SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged); 如果你想跟踪输入语言的变化(比如在你选择语言时系统尝试的变化),那么你可以使用:System

2021-10-19 23:47:18    分类:技术分享    c#   .net   cultureinfo

Custom Culture info in ASP.NET

I created a CustomCulture class form CultureInfo. Here is my code: public class CustomCulture : CultureInfo { private string _parent; private string _name; private string _description; public CustomCulture(string parentCulture, string myCultureName) : base(parentCulture) { _parent = parentCulture; _name = myCultureName; _description = String.Format("custom culture({0})", _name); } public override string Name { get { return _parent + "-" + _name; } } public override CultureInfo Parent { get { return new CultureInfo(_parent); } } public override string EnglishName { get { return _description; }

2021-10-19 19:36:01    分类:问答    asp.net   cultureinfo

是否存在小数点分隔符长度超过一个字符的文化?(Are there cultures in which the decimal separator is longer than one character?)

问题 我必须编写一个stringToNumber解析函数,该函数可以将自定义字符串用于以下内容: 小数点分隔符( . for en-US => 3.1415 ) 千位分隔符 ( , for en-US => 1,000,000 ) 正号( + for en-US => +5 ) 负号( -代表 en-US => -5 ) 我可以假设这些只是一个字符(这将使实施更容易)还是有任何文化中的任何一个更长?

2021-10-19 06:12:02    分类:技术分享    formatting   number-formatting   cultureinfo   culture

Difference between String.Compare and CultureInfo's CompareInfo

I was trying my hand over System.Gloablization in a small desktop app. I am a bit confused about the additional control CultureInfo.Compare() has to offer than using String.Compare() method and its overloads. Let's say I have two strings String s1 = "\u3057\u3093\u304B\u3093\u305b\u3093"; //some Japanese text in Unicode String s2 = "\u30b7\u3043\u30ab\u30f3\u30bb\u30f3"; //Some Japanese text in Unicode CultureInfo ci = new CultureInfo("ja-JP"); String.Compare has several overloads, out of which currently I would use String.Compare(String strA, String strB, CultureInfo culture, CompareOptions

2021-10-19 06:08:22    分类:问答    c#   string   globalization   cultureinfo

EPPlus 转换 csv 并从 double 中丢失逗号(EPPlus converting csv and missing the comma from a double)

问题 我正在尝试使用以下代码将 CSV 文件转换为 xlsx 文件: string csvFileName = path; string nomeArquivo = Path.Combine(serverpath, RandomString(10) + ".xlsx"); string worksheetsName = "b2w"; bool firstRowIsHeader = false; var format = new ExcelTextFormat(); format.Delimiter = ';'; format.EOL = "\n"; // DEFAULT IS "\r\n"; // format.TextQualifier = '"'; using (ExcelPackage package = new ExcelPackage(new FileInfo(nomeArquivo))) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(worksheetsName); worksheet.Cells["A1"].Value = "Status Pedido"; worksheet.Cells["B1"].Value = "Site Origem"; worksheet.Cells["C1"]

2021-10-14 21:38:59    分类:技术分享    c#   c#-4.0   cultureinfo   epplus

.NET Chinese CultureInfo "zh" 不存在?(.NET Chinese CultureInfo "zh" does not exist?)

问题 我正在使用 .NET 3.5 并运行以下代码: var culture = new CultureInfo("zh"); // Throws ArgumentException 我从 xml:lang 属性中得到字符串“zh”。 我不明白为什么会抛出异常,因为例如“de”(这是“de-DE”的父级)工作正常。 文化“zh-CN”确实有效,但这不是我可以使用的。 编辑:它适用于 .NET 4.5.1(感谢 xanatos) - 所以即使 MSDN 页面解释说中文是一个例外,在较新的 .NET 版本中行为也有所不同。 回答1 CultureInfo 页面上有一个小注释: 有两个文化名称与此规则相矛盾。 文化中文(简体),命名为 zh-Hans,中文(繁体),命名为 zh-Hant,是中性文化。 区域性名称代表当前标准,除非您有理由使用旧名称 zh-CHS 和 zh-CHT,否则应使用该名称。 所以你可以试试zh-Hans或zh-Hant 和/或您可以看到 .NET 3.5 中的 CultureInfo 类支持哪些文化? 接受的答案说: 不幸的是,它依赖于操作系统。 在此处查看每个操作系统的默认语言支持。 回答2 在 .NET 3.5 中“zh”不起作用,请改用“zh-Hans”或“zh-Hant”。 没有找到更好的解决方案。 或者切换到 .NET 4.5。

2021-10-14 16:49:41    分类:技术分享    c#   cultureinfo   chinese-locale

Determine local culture of a PC without creating an application

Is there any way to determine the local culture of a PC (such as en-US) without running an application? I tried looking in Control Panel | Regional Settings (running WinXP), but I don't know how the choices there map to the PC's culture. I'm looking for a solution that doesn't require creating an .exe, such as running a command from the command prompt (not PowerShell), or a VbScript or JS file (as long as we are getting the real culture and not IE settings.) Thanks

2021-10-14 13:43:15    分类:问答    .net   localization   culture   cultureinfo