对日编程的一些小知识点
时间:2019-10-08
本文章向大家介绍对日编程的一些小知识点,主要包括对日编程的一些小知识点使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在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)
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、日本日历
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
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格式输出
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 }
原文地址:https://www.cnblogs.com/axzxs2001/p/11635710.html
- 如何改善遗留的代码库
- ASP.NET的路由系统:根据路由规则生成URL
- ASP.NET Core 1.0中实现文件上传的两种方式(提交表单和采用AJAX)
- 通过3个Hello World应用来了解ASP.NET 5应用是如何运行的(1)
- 工业X.0将至 企业数字化转型该怎么做?
- 通过3个Hello World应用来了解ASP.NET 5应用是如何运行的(2)
- 通过3个Hello World应用来了解ASP.NET 5应用是如何运行的(3)
- 为什么说2018年互联网创业机会将变少
- ASP.NET MVC Controller激活系统详解:IoC的应用[上篇]
- ASP.NET Core的配置(1):读取配置信息
- 权限管理和备份实例
- “协变”、“逆变”与Delegate类型转换
- 如今的人工智能是不是真的已经很聪明了?
- 【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- codeforces 1283D(BFS)
- codeforces 1213D2(贪心+思维)
- codeforces 1426E(贪心)
- codeforces 1374E1(贪心+优先队列)
- codeforces 455A(dp)
- codeforces 1296E1(贪心+思维)
- codeforces 1216E1(数学+暴力)
- JDBC基础入门使用
- codeforces 1353E(dp)
- codeforces 1396A(构造)
- codeforces 1335E1+E2(思维)
- JSP开发基础入门学习1
- codeforces 1407C(数学+交互题)
- codeforces 1420C1
- codeforces 1417D(思维,构造)