在GitHub上有個項目,本來是作為自己研究學習.net core的Demo,沒想到很多同學在看,還給了很多星,是以覺得應該升成3.0,整理一下,寫成博分享給學習.net core的同學們。
項目名稱:Asp.NetCoreExperiment
項目位址:https://github.com/axzxs2001/Asp.NetCoreExperiment
今天先分享幾個對日程式設計的小知識點
1、關于BOM(Byte Order Mark)知識點( https://baike.baidu.com/item/BOM/2790364)
Github庫代碼(https://github.com/axzxs2001/Asp.NetCoreExperiment/blob/master/Asp.NetCoreExperiment/Common/UFT8_Bom_Demo/Program.cs)
Bom格式就是在開頭添加三個位元組-EF,BB,BF,來聲明UTF-8格式
在.net core中,生成Bom的代碼如下:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 GenerateBom1();
6 GenerateBom2();
7 }
8 /// <summary>
9 /// 方式一,利用UTF8Encoding構造函數來添加EF,BB,BF開頭位元組流
10 /// </summary>
11 static void GenerateBom1()
12 {
13 var encoding = new UTF8Encoding(true);
14 var filePath = Directory.GetCurrentDirectory() + "/bom1.txt";
15 if (File.Exists(filePath))
16 {
17 File.Delete(filePath);
18 }
19 using (var reader = new StreamWriter(filePath, false, encoding))
20 {
21 //寫入的内容
22 reader.WriteLine("bom1");
23 reader.Close();
24 }
25 }
26 /// <summary>
27 /// 方式二,手動方式添加EF,BB,BF開頭位元組流
28 /// </summary>
29 static void GenerateBom2()
30 {
31 //寫入的内容
32 var list = new List<byte>(Encoding.UTF8.GetBytes("bom2"));
33 list.InsertRange(0, new byte[] { 239, 187, 191 });// EF=239 BB=187 BF=191
34 var filePath = Directory.GetCurrentDirectory() + "/bom2.txt";
35 if (File.Exists(filePath))
36 {
37 File.Delete(filePath);
38 }
39 using (var stream = new FileStream(filePath, FileMode.CreateNew))
40 {
41 stream.Write(list.ToArray(), 0, list.Count);
42 stream.Close();
43 }
44 }
45 }
2、日本月曆
GitHub代碼庫(https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/Common/CalendarDemo)
1 static void JapaneseTest()
2 {
3 var dt = DateTime.Now;
4 Console.WriteLine(dt);
5 //日本月曆
6 var jpci = new System.Globalization.CultureInfo("ja-JP");
7 var jpcal = new System.Globalization.JapaneseCalendar();
8 jpci.DateTimeFormat.Calendar = jpcal;
9 Console.WriteLine(dt.ToString("ggyy/MM/dd", jpci)); //令和01/10/07
10 }
3、日語字元串轉換Hankana,Katakana,Hiragana
GitHub代碼庫(https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/Common/JanpaneseFullHalfWidthTransfer)
1 class Program
2 {
3 private const string Hankana =
4 "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワヲンヴヷヺ゙゚ー。「」、・";
5
6 private const string Katakana =
7 "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワヲンヴ\u30F7\u30FA゛゜ー。「」、・";
8
9 private const string Hiragana =
10 "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをん\u3094\u30F7\u30FA" +
11 "゛゜ー。「」、・";
12
13 private const string KatakanaOdoriji = "ヽヾ";
14
15 private const string HiraganaOdoriji = "ゝゞ";
16
17 static void Main(string[] args)
18 {
19 Console.OutputEncoding = Encoding.UTF8;
20 // Katakana-Hankana
21 Console.WriteLine($"========================KatakanaToHankana======================");
22 Console.WriteLine($"old Katakana:{Katakana}");
23 Console.WriteLine($"converted Hankana:{KanaConverter.Convert(Katakana, KanaOption.KatakanaToHankana)}");
24 Console.WriteLine();
25
26 //Hankana-Katakana
27 Console.WriteLine($"========================HankanaToKatakana=======================");
28 Console.WriteLine($"old Hankana:{Hankana}");
29 Console.WriteLine($"converted Katakana:{KanaConverter.Convert(Hankana, KanaOption.HankanaToKatakana)}");
30 Console.WriteLine();
31
32 // Hiragana-Hankana
33 Console.WriteLine($"========================HiraganaToHankana=======================");
34 Console.WriteLine($"old Hiragana:{Hiragana}");
35 Console.WriteLine($"converted Hankana:{KanaConverter.Convert(Hiragana, KanaOption.HiraganaToHankana)}");
36 Console.WriteLine();
37
38 //Hankana--Hiragana
39 Console.WriteLine($"========================HankanaToHiragana=======================");
40 Console.WriteLine($"old Hankana:{Hankana}");
41 Console.WriteLine($"converted Hiragana:{KanaConverter.Convert(Hankana, KanaOption.HankanaToHiragana)}");
42 Console.WriteLine();
43
44 //Katakana-Hiragana
45 Console.WriteLine($"========================KatakanaToHiragana=======================");
46 Console.WriteLine($"old Katakana:{Katakana}");
47 Console.WriteLine($"converted Hiragana:{KanaConverter.Convert(Katakana, KanaOption.KatakanaToHiragana)}");
48 Console.WriteLine();
49
50 //Hiragana-Katakana
51 Console.WriteLine($"========================HiraganaToKatakana=======================");
52 Console.WriteLine($"old Hiragana:{Hiragana}");
53 Console.WriteLine($"converted Katakana:{KanaConverter.Convert(Hiragana, KanaOption.HiraganaToKatakana)}");
54 Console.WriteLine();
55
56 //Katakana-Hiragana
57 Console.WriteLine($"========================KatakanaToHiragana=======================");
58 Console.WriteLine($"old KatakanaOdoriji:{KatakanaOdoriji}");
59 Console.WriteLine($"converted HiraganaOdoriji:{KanaConverter.Convert(KatakanaOdoriji, KanaOption.KatakanaToHiragana)}");
60 Console.WriteLine();
61
62 //Hiragana-Katakana
63 Console.WriteLine($"========================HiraganaToKatakana=======================");
64 Console.WriteLine($"old HiraganaOdoriji:{HiraganaOdoriji}");
65 Console.WriteLine($"converted KatakanaOdoriji:{KanaConverter.Convert(HiraganaOdoriji, KanaOption.HiraganaToKatakana)}");
66 Console.WriteLine();
67 Console.ReadLine();
68
69
70 }
71 }
4、Shift-JIS格式輸出
GitHub代碼庫(https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/Common/Shift_JISDemo)
1 static void Main(string[] args)
2 {
3 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
4 var jis = Encoding.GetEncoding("shift_jis");
5 File.WriteAllText(Directory.GetCurrentDirectory() + "/a.txt", "こんにちは", jis);
6 }
****歡迎關注我的asp.net core系統課程**** 《asp.net core精要講解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core項目實戰》 https://ke.qq.com/course/291868
《基于.net core微服務》 https://ke.qq.com/course/299524