我正在研究一個需要很多日文片假名,平假名和漢字字符的項目。原始文件是使用「MS Pゴシック」字體的excel文件。我遇到的問題似乎與其他所有這類問題和c#都是一樣的。我發現的解決方案似乎都開始於在c#程序中添加文本。 我想要做的是讀取我的.xls或.txt文件之一,我已經成爲C#,與數據使用正常的C#函數,如字符串比較。但是,當我這樣做時,會發生注意事項。寫入或顯示數據會產生「?」分數。這裏沒有新東西。在c中編寫,顯示和存儲日文字符#
我嘗試了與C++相同的想法,它完美地工作。
問題是它必須是c#,而不是C++,以便與我正在使用的其他軟件的interop一起工作。 (c系統字符串)與c + +(c字符串)相比,不處理unicode本地處理?
我正在使用Visual Studio C++ 2008 Express和Visual Studio C#2010 Express。 文件是相同的,但它在C++中工作,而不是在c#中。
對不起,我有一段時間沒有用過英語。 我已經嘗試了各種類型,下面是最新的,但仍然「?」標記輸出。
var reader = new StreamReader(File.OpenRead(@"C:\smallerBunShou.txt"), Encoding.UTF8);
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
listA.Add(values[0]);
// listB.Add(values[1]);
// listC.Add(values[2]);
}
int sizeOflistA = listA.Count();
//using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\WriteLines2.txt"))
var file = new StreamWriter(File.OpenWrite(@"C:\WriteLines2.txt"), Encoding.UTF8);
{
foreach (string line in listA)
{
// If the line doesn't contain the word 'Second', write the line to the file.
if (!line.Contains("Second"))
{
file.WriteLine(line);
}
}
}
我也曾嘗試Encoding.Unicode等 我的電腦是日本個人電腦,軟件大多是日本人。根據迄今爲止的答案之一,這不是一個Unicode問題,日本的個人電腦使用Shift-JIS,這很可能是我需要研究的。當我解決這個問題時我會發布我的解決方案。
更新: 環顧一下後,我找到了Shift-JIS編碼方案。
Encoding.GetEncoding(932));
這解決了我的問題!謝謝@EricFalsken指引我朝着正確的方向前進。
C#具有完整的Unicode功能。你的問題真的沒有這個意義。 「沒什麼新鮮的」?那麼,對我來說,C#應該在Unicode中遇到問題是非常新的。這個問題很可能是在你的應用程序的閱讀部分。你應該改變你的問題,告訴我們究竟是什麼問題,並通過顯示相關的代碼。 – 2013-04-10 08:04:22
Excel中的字符是否正確顯示? 您可以設置表單的字體。或者你可以創建SatteliteAssemblies與翻譯,並讓他們通過交換UICulture加載。 。默認情況下.Net使用該語言的系統語言和字體。 – wonko79 2013-04-10 08:04:38
你用什麼代碼來做到這一點? – 2013-04-10 08:04:43