阿拉伯语或乌尔都语字符串的换行符

时间:2014-04-22 04:43:11

标签: c# localization multilingual arabic text-processing

        string s = "";

        s += "پاکستان کے وزیراعظم نواز شریف نے یقین دہانی کرائی ہے کہ صحافی حامد میر پر قاتلانہ حملے :TV";

        s += "\n\r"+"بی بی سی اردو کا آفیشل ٹوئٹر اکاؤنٹ۔:BBC Urdu's";

        xrLabel1.Text = s;

但它的节目担心输出

 پاکستان کے وزیراعظم نواز شریف نے یقین دہانی کرائی ہے کہ صحافی حامد میر پر قاتلانہ حملے :GEOبی بی سی اردو کا آفیشل
ٹوئٹر اکاؤنٹ۔:BBC Urdu's

我想要一些像(像我的代码一样)的东西

پاکستان کے وزیراعظم نواز شریف نے یقین دہانی کرائی ہے کہ صحافی حامد میر پر قاتلانہ حملے :GEO
بی بی سی اردو کا آفیشل ٹوئٹر اکاؤنٹ۔:BBC Urdu's

我认为它的新线问题有什么建议或解决方案吗?

3 个答案:

答案 0 :(得分:1)

您可以尝试使用Environment.NewLine,看看是否有帮助。

但是我认为问题是标签,尝试更改Text Wrap或与行相关的其他属性以及AutoSize。

如果失败则使用2个标签。

答案 1 :(得分:1)

您实际上需要在行的开头使用右到左嵌入字符(RLE)来正确显示RTL和LTR字。

  • U + 202A:LEFT-TO-RIGHT EMBEDDING(LRE)
  • U + 202B:右对边嵌入(RLE)
  • U + 202D:左右颠覆(LRO)
  • U + 202E:RIGHT-TO-LEFTRVERRIDE(RLO)
  • U + 202C:POP方向格式化(PDF)

http://www.w3.org/International/questions/qa-bidi-controls

char rleChar = (char)0x202B;// RLE embedding 
text = rleChar + text;

答案 2 :(得分:1)

我为\ n使用unicode(U + 000A和U + 000D)字符,并为每一行使用RLE(U + 202B)现在它的工作正常 这里是Unicode urdu和阿拉伯语的详细信息 完成键入阿拉伯语单词并在其后面添加一个空格(此空格将嵌入文本与阿拉伯语文本分开)。 插入特殊字符U + 000A(以Feed Newline为阿拉伯字符)。 插入特殊字符U + 000D(要反馈/输入阿拉伯字符)。 插入特殊字符U + 200F(将前面的空格渲染为阿拉伯字符)。 插入特殊字符U + 202A(开始从左到右嵌入)。 插入特殊字符U + 202B(以开始右向左嵌入)。 插入另一个空格(将嵌入的文本与将继续向左的阿拉伯文本分开)。 将键盘更改为例如英语并输入从左到右的单词。 插入特殊字符U + 202C(将bidrectional状态恢复为从左到右嵌入之前的状态)。 将键盘更换回来并继续用阿拉伯语书写。