Datagridview波斯语格式 [英] Datagridview Persian Formatting

查看:122
本文介绍了Datagridview波斯语格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的datagridview的单元格中打印一个字符串,其中包括波斯语和英语字符,甚至包括任何语言。当我在指定的单元格中打印这个值时,它会变得格格不定。



这是图片:



解决方案

存储在字符串中的所有字符串实际上都是Unicode.Unicode。阅读: .Net和C#中的字符串绝对最小的每个软件开发人员绝对必须了解Unicode和字符集(No Excuses!)



编辑:我想你希望转换功能自动将\x11更改为\\\◀,但这里的问题是\x11几乎在任何编码中都有效,差异通常会开始字符\x80,所以即使你这样做,Convert函数也会维护它。

  string reEncodedString = null; 
byte [] unicodeBytes = UnicodeEncoding.Unicode.GetBytes(value);
byte [] sourceBytes = Encoding.Convert(Encoding.Unicode,
sourceEncoding,unicodeBytes);

您可以在 unicode.org 从CP850到Unicode的映射。所以,为了进行这种转换,您将不得不手动更改这些字符。



您还要确保如果要使用波斯字符,则使此行代码

  System.Globalization.CultureInfo language = new System.Globalization.CultureInfo(fa-ir); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);

并将Characters设为英文使用该位代码

  System.Globalization.CultureInfo language = new System.Globalization.CultureInfo(en-us); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


I'm trying to print a string in a cell of my datagridview which includes both Persian and English characters or even from any language. When I print this value in the specified cell it became somehow badly formatted.

Here is the picture:

解决方案

All the strings stored in string are in fact Unicode.Unicode. Read: Strings in .Net and C# and The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

Edit: I suppose that you want the Convert function to automatically change \x11 to \u25c0, but the problem here is that \x11 is valid in almost any encoding, the differences usually start in character \x80, so the Convert function will maintain it even if you do that:

string reEncodedString = null;
byte[] unicodeBytes = UnicodeEncoding.Unicode.GetBytes(value);
byte[] sourceBytes = Encoding.Convert(Encoding.Unicode,
                                sourceEncoding, unicodeBytes);

You can see in unicode.org the mappings from CP850 to Unicode. So, for this conversion to happen you will have to change these characters manually.

you want to also make sure that if you are going to use Farsi Characters make this line of code

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("fa-ir"); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language); 

and to set the Characters back to English use this bit of code

System.Globalization.CultureInfo language = new System.Globalization.CultureInfo("en-us"); 
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);

这篇关于Datagridview波斯语格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆