[英]Remove special chars from a File
我正在嘗試打開一個文本文件並刪除所有特殊字符ñÑ'áí等...
該文件是客戶端發送給我的布局,我將其解析以將文件發送到AS400服務器,但是我必須刪除所有特殊字符。
問題是:
當我在C#中打開某些帶有特殊字符的文件時,它會讀取特殊字符和兩個不同的字符,並將整行向右移動一個空格,然后必須位於該位置的信息就無法確定。
我拿相同的文件,然后在記事本中打開它,該文件就可以了,但是當我在寫字板中打開它時,它看起來像2個字符(僅1個特殊字符)。例如:在文件中我有:
“ 0001 0003JUANPEÑA33441JPENATEST”
但是在C#中顯示
“ 0001 0003JUANPEï░A33441JPENATEST”
即時通訊使用編碼1251
有什么幫助嗎?
您有2個問題:讀取文件並刪除字符。
您需要以編寫的編碼讀取文件:
StreamReader readStream = new StreamReader(receiveStream, Encoding.GetEncoding("YOUR FILE ENCODING"));
要刪除字符,您可以嘗試手動操作...這是代碼:
private static string CHAR_REPLACE_SRC = "áàãâÁÀÃÂéèêÉÈEíìîÍÌÎóòõôÓÒÕÔúùûÚÙÛçÇñÑ";
private static string CHAR_REPLACE_DST = "aaaaAAAAeeeEEEiiiIIIooooOOOOuuuUUUccnN";
private static string GetCleanString (string src)
{
int i = 0;
while (i < src.Length)
{
if (src[i] < 32 || src[i] > 127)
{
int pos = CHAR_REPLACE_SRC.IndexOf(src[i]);
if (pos >= 0)
src = src.Replace(CHAR_REPLACE_SRC[pos], CHAR_REPLACE_DST[pos]);
else
src = src.Remove(i, 1);
}
else
i++;
}
return src.Replace("\"", "").Replace("?", "").Replace(":", "").Replace("&", "_").Replace("\\", "_").Replace("/", "_");
}
您可能需要進行一些調整。 我用它來從頁面標題創建一個干凈的URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.