【发布时间】:2020-07-08 06:44:41
【问题描述】:
我正在研究一种显然是在日本开发的外国文件格式。它们的大多数字符串都以 3 字节格式使用 UTF-8 编码存储(即大写字母 A 表示为 0xEF,0xBC,0xA1)。虽然在 .NET 中解码此类字符串没有问题,但我找不到强制框架以相同格式输出的方法,因为它将默认为缩写形式(有道理,但我确实需要 3-字节形式)。
是否有任何标准功能可以解决这个问题?我很懒,我不想自己实现它:)
【问题讨论】:
-
它已经做到了——这是 UTF8 的 定义,使用 1 个或更多字节来发出 Unicode 字符。 UTF8 是一种可变长度编码。你尝试了什么代码,有什么问题?你期待什么,你得到了什么?
-
@PanagiotisKanavos:它还没有将 A 编码为 EF BC A1。
-
the capital A is represented as 0xEF,0xBC,0xA1不,不是。这个页面是 UTF8 的,就像现在几乎所有的网站一样。检查源,将其保存到磁盘并检查字节。没有一个英文字符被保存为多个字节 -
@Ry 不应该。那不是 UTF8
-
你的代码大约是
FULLWIDTH LATIN CAPITAL LETTER A。这是写拉丁文字的日本特长。不要将它用作标准的A字母,但当您需要全角时。因为日文(和中文)字符很大,通常我们将两个拉丁字符放在一个“地方”,但对于某些标题或垂直布局。
标签: c# .net .net-core utf-8 utf