这个编码\M+5BCFE\M+5BAC5是什么?

问题描述 投票:0回答:1

我们在 dxf/dwg 多行文本实体中看到一些不熟悉的编码文本,例如 \M+5BCFE\M+5BAC5,它应该是汉字“件号”。有人认识这些编码并知道如何解码它们吗?

在 Google 上搜索并询问 ChatGPT,但没有任何结果。

unicode dxf
1个回答
0
投票

来自 Unicode 和 DXF 文件

DXF 交换中表示的文本(文本对象的内容) 格式文件(DWG 的文本版本)以纯 ASCII 格式存储 到 AutoCAD 2017 版。特殊字符 - 例如捷克, 亚洲, 西里尔字母 - 使用 MIF(Maker Interchange 格式,语法:

M+nxxyy
)或CIF(通用交换格式,语法:
U+nnnn
)代码。

自 2007 版起,DXF 文件以 Unicode (UTF-8) 格式保存和加载。 因此任何特殊字符也可以直接存储到 DXF 中。但 它们仍然可以从 MIF 和 CIF 代码进行解释。什么时候 解释代码,

DWGCODEPAGE
的当前设置 应用变量。

关于 M+nxxyy 语法中的

n
,请阅读
AdCharFormatter::getMIFCodePage
:

此静态方法检索给定索引的代码页值。 ch 必须在

'1'
(0x31) 到
'5'
(0x35) 范围内。

如果 ch 不代表有效索引,则返回零。否则,它 返回以下值之一:

  • 932 - Shift-JIS(日语)
  • 950 - 大5(繁体中文)
  • 949 - KS C-5601-1987(万松)
  • 1361 - KS C-5601-1992(约哈布)
  • 936 - GB 2312-80(简体中文)

让我们检查一下(Python 中的示例,以了解其通用的可理解性):

'件号'.encode('gb2312-80')

b'\xbc\xfe\xba\xc5'

我们看到与 \M+5

BCFE
\M+5BAC5 中相同的十六进制值 bc fe ba c5

© www.soinside.com 2019 - 2024. All rights reserved.