C# .NET Framework 1.1:我正在尝试用普通的单引号替换法语引号字符。它在我们的大多数开发环境(机器)上工作,但是当移动到系统测试环境时,出现string cannot be of zero length
错误。
这是我的代码:
//replace French Quote with normal single Quote
fileColumnName = "date d’embauche";
fileColumnName = fileColumnName.Replace("’","'");
测试环境中的字符编码是否存在问题?
更新:忘了提:它是一个 COM+ 组件;我们在 COM+ 中有字符编码设置吗?
抱歉不是很清楚;这是代码的很大一部分:它可能会令人困惑,所以要说清楚:
fileData
是一个数据表 (System.Data.Table),由 OLEDB 连接到 CSV 文件填充。然后我得到与存储在数据库中的名称(headerData)进行比较的列名。
//#5: Invalid header row check
foreach(DataRow hrow in headerData.Rows)
{
columnNameEnglish = hrow["EnglishDisplayValue"].ToString().ToLower(); //get english column definition
columnNameFrench = hrow["FrenchDisplayValue"].ToString().ToLower(); //get french column definition
columnIndex = Convert.ToInt32(hrow["DataBaseValue"]); //get corresponding index
fileColumnName = fileData.Columns[columnIndex].ColumnName.ToLower();
//replace french Quote with normal Quote
fileColumnName = fileColumnName.Replace("’","'");
//check English
if(fileColumnName.IndexOf(columnNameEnglish) < 0)
{
//check French
if(fileColumnName.IndexOf(columnNameFrench) < 0)
{
//invalid row
errs.Add("81181");
break;
}
}
}