簡體   English   中英

從文件中刪除特殊字符

[英]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。

我找到了一種了解文件編碼的解決方案。

閱讀下一個鏈接:

http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=469

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM