意外的右左字符串连接

本文关键字:连接 字符串 右左 意外 | 更新日期: 2023-09-27 18:06:50

假设我有一个DataRow,它有很多列,像这样,

//header
firstnameEnglish , FirstNameArabic, LastnameEnglish , LastNameArabic, 
project, addressEnglish, addressِArabic
//data'hatem', 'حاتم', 'gamil','جميل','||',

'11 el haram street ','11 الهرم'

我想在字符串中获得行数据,我可以将其导出到文本文件。

我在DataRow列上做一个for循环像这样,

string data = String.Empty;    
for(int i=0; i < datarow.columns.count<0; i++)
    datastr += datarow[i] + " | ";

我的问题是,data中的字符串以错误的方式连接。经过调试,我发现在将addressEnglish连接到data之前,连接进行得很顺利。此时,data已经包含了从连接的列到阿拉伯语列的值。

输出为,

'hatem', 'حاتم', 'gamil', 'جميل','||',  '11 ELHaram street','11 شارع الهرم'

是错误的

我想知道为什么会发生这种情况以及如何解决这个问题

谢谢

意外的右左字符串连接

你确定这不是你用来在屏幕上显示结果的程序的问题吗?由于阿拉伯语是从右向左的,所以支持unicode的程序经常使用启发式方法来决定围绕阿拉伯语短语的标点符号应该与它一起从右向左呈现。

逐字符转储可以更容易地确定确实存在需要解决的问题。

(相反,您确定输入csv中的标点符号是按正确顺序存储的吗?)