いくつかの値を他の値に置き換えて、パラメータとして使用するために使用するC#プログラムがあります。 'NAME1'のように、& 1、 'NAME2'は& 2などと置き換えられます。C#でUNIXエンコードされたファイルを読む
問題は、変更するデータがUNIXでエンコードされたテキストファイルにあり、íなどの特殊文字がメモリ上であっても正方形(無効な文字)として読み取られることです。私のコントロール外の仕様で、ファイルを変更することはできませんし、そのように読むよりも他の選択肢はありません。
私は私を提供しています#cが130のエンコーディングのほとんどを読むことをしようと試みています
EncodingInfo[] info = System.Text.Encoding.GetEncodings();
string text;
for (int a = 0; a < info.Length; ++a)
{
text = File.ReadAllText(fn, info[a].GetEncoding());
File.WriteAllText(fn + a, text, info[a].GetEncoding());
}
fnが読み込むファイルのパスです。 (130のような)すべての作られたファイルをチェックしたが、誰もインターネット上で何も見つけられないアイデアとイムが正しく書かれていない。
SOLUTION:
System.Text.Encoding encoding = System.Text.Encoding.GetEncodings()[41].GetEncoding();
String text = File.ReadAllText(fn, encoding); // get file text
// DO ALL THE STUFF I HAD TO
File.WriteAllText(fn, text, encoding) System.Text.Encoding.GetEncodings()[115].GetEncoding(); //Latin 9 (ISO)
/* ALL THIS ENCODINGS WORKED APARENTLY FOR ME WITH ALL WEIRD CHARS I WAS ABLE TO WRITE :P
System.Text.Encoding.GetEncodings()[108].GetEncoding(); //Baltic (ISO)
System.Text.Encoding.GetEncodings()[107].GetEncoding(); //Latin 3 (ISO)
System.Text.Encoding.GetEncodings()[106].GetEncoding(); //Central European (ISO)
System.Text.Encoding.GetEncodings()[105].GetEncoding(); //Western European (ISO)
System.Text.Encoding.GetEncodings()[49].GetEncoding(); //Vietnamese (Windows)
System.Text.Encoding.GetEncodings()[45].GetEncoding(); //Turkish (Windows)
System.Text.Encoding.GetEncodings()[41].GetEncoding(); //Central European (Windows) <-- Used this one
*/
はあなたのためにありがとうございました:
が最終的にこのコードが正しくテキストを取得するために仕事をしたように、また、書き込み部に同じエンコーダを修正しなければならなかったルックス
NOMANを助ける(1)
ファイルのエンコードは何ですか?それを知らずに、あなたが続けなければならないのは推測です。それがUNIXマシン上にあることは無関係です。 – Oded
+1を自動推測のために+1しましたが、今ではあなたのソースに戻って、Odedのように「ファイルに書かれたものは何ですか?がんばろう! – shellter
私はソースを知ることができませんことを申し訳ありませんが、唯一の私が知っているのは、メモ帳でUNIX ANSIとしてマークされていることです、それは[somefiles with *] myFile.txtをコピーしたバットから作成されます。私はそれらのほとんどがOracleまたはExcelスクリプトからの "保存"機能から作成された –