2015-05-06 69 views
2

我有問題試圖讓我的代碼中正確顯示完整的日語日期(我需要代碼適用於世界各地的所有區域語言)。下面突出顯示的部分是我希望它顯示的內容,但是我得到:2015?5?6? 11時05分21秒日本的完整日期時間產生問號

該日期以後寫入的MS SQL服務器,其中它也顯示問號儘管具有正確的排序規則要求

Japanese Full Date Format

currDate = "Date: " + DateTime.Now.ToString("F"); 

Console.WriteLine("Current Date: " + currDate); 

任何幫助理解。 謝謝

回答

2

您的控制檯無法顯示您要顯示的字符,因爲默認情況下它被設置爲ASCII字符。這應該顯示您需要日本:

Console.OutputEncoding = System.Text.Encoding.Unicode 

pixelbadger是正確的:你的字體可能無法即使有良好的編碼,以顯示這些字符。請參閱this answer which is about how to display japanese Kanji in cmd windows?

+0

即使更改輸出編碼,控制檯也不支持漢字字形。有一個解決方法[這裏](http://stackoverflow.com/questions/3780378/how-to-display-japanese-kanji-inside-a-cmd-window-under-windows)。 – pixelbadger

+0

@Joze你完全正確。這是一個令我感到慚愧的恥辱,我向整個亞洲社區表達我的歉意:) –

1

可以使用CultureInfo類,所以你在每個字符串的基礎上指定文化:

CultureInfo culture = new CultureInfo("en-US"); 
string.Format(culture, "SDate in US format: {0:d}", DateTime.Now); 
1

你需要指定文化。對於日本,它是ja-JP

嘗試重寫代碼爲

CultureInfo ci = new CultureInfo("ja-JP"); 
currDate = "Date: " + DateTime.Now.ToString("F",ci); 
Console.WriteLine("Current Date: " + currDate); 
+0

我不確定它是關於文化的,因爲如果它在默認情況下顯示(這是en-US,如果我是正確的),那麼'?'不會在那裏 –

+0

文化取決於在你的系統上設置的內容。如果它是en-US,那麼它將是默認設置。此外,格式取決於您爲系統中的短日期和長日期設置的內容。 –

+0

您是否運行了您提供的代碼? –

0

你不必在你的窗戶安裝了日文表。

從Windows Update安裝日語融合表,在控制面板的區域設置選項卡中選擇它並重啓。之後,它應該正常工作。

測試表格是否正確安裝在CMD中寫入「chcp 932」的好方法是顯示日文字符。還有一點需要注意的是,控制檯使用的字體支持日文字符,標準的UTF-8可以渲染日文。

相關問題