- // 中文符号对应的十进制
- val single = Seq(12290,65311,65281,65292,12289,65307,65306,12300,12301,12302,12303,8216,8217,8220,8221,65288,65289,12308,12309,12304,12305,8212,8230,8211,65294,12298,12299,12296,12297,12288)
- val code = """ Aa,,《"test"》“悄中文""".map{c =>
- val code = Integer.toHexString(c) // 转unicode
- if (c >= Integer.parseInt("4e00", 16) && c <= Integer.parseInt("9fa5", 16) || single.contains(c)) s"\\u$code" else c
- }
- // unicode转中文
- val char = code.map{c => if (c.toString.startsWith("\\u")) Integer.parseInt(c.toString.substring(2), 16).toChar else c}
-
- val res = code.mkString
- println(res)
- println(char.map(_.toString).mkString)
名称 | Unicode(0x) | 符号 | 10进制 |
句号 | 3002 | 。 | 12290 |
问号 | FF1F | ? | 65311 |
叹号 | F01 | ! | 65281 |
逗号 | FF0C | , | 65292 |
顿号 | 3001 | 、 | 12289 |
分号 | FF1B | ; | 65307 |
冒号 | FF1A | : | 65306 |
引号 | 300C | 「 | 12300 |
300D | 」 | 12301 | |
引号 | 300E | 『 | 12302 |
300F | 』 | 12303 | |
引号 | 2018 | ‘ | 8216 |
2019 | ’ | 8217 | |
引号 | 201C | “ | 8220 |
201D | ” | 8221 | |
括号 | FF08 | ( | 65288 |
FF09 | ) | 65289 | |
括号 | 3014 | 〔 | 12308 |
3015 | 〕 | 12309 | |
括号 | 3010 | 【 | 12304 |
3011 | 】 | 12305 | |
破折 | 2014 | — | 8212 |
省略 | 2026 | … | 8230 |
连接 | 2013 | – | 8211 |
间隔 | FF0E | . | 65294 |
书名 | 300A | 《 | 12298 |
300B | 》 | 12299 | |
书名 | 3008 | 〈 | 12296 |
3009 | 〉 | 12297 | |
空格 | 3000 |
| 12288 |