保存并加载文件 > Creo Elements/Direct Modeling 中的 Unicode
  
Creo Elements/Direct Modeling 中的 Unicode
借助 Unicode 支持,可以在单个字符串中混合使用几乎任何语言的字符。
对于内存中存储的字符串和文本数据,Creo Elements/Direct Modeling 使用 UTF-16 编码。因此,Creo Elements/Direct Modeling 可以处理和支持全世界的一大批字符。更准确地说,是支持来自 Unicode 基本多文种平面 (代码点从 U+0000 到 U+FFFF) 的所有字符。
例如,您可以在同一会话中使用德语、日语、中文、希伯来语和俄语字符串。您甚至可以在一个字符串中混合使用所有这些语言的字符。
虽然 Creo Elements/Direct Modeling 核心现在支持所有这些语言的字符,但这并不意味着所有语言都有本地化版本。
所有 Creo Elements/Direct Modeling 特定的文件格式现在都支持 Unicode 字符串。
允许的包名称
请参阅 关于零件和装配
用户界面
由于对象名称可以包含各种字符,Creo Elements/Direct Modeling 使用算法来设置图形用户界面的默认字体。
Windows 提供有默认的用户界面元素字体,Creo Elements/Direct Modeling 在启动时将查询这些字体,然后将这些字体用于其用户界面。可以在高级外观对话框中查看和更改这些默认字体:单击开始 > 设置 > 控制面板 > 显示,然后在外观选项卡中单击高级
Creo Elements/Direct Modeling 使用的是操作系统中的字体,这些字体显示在各个用户界面元素中,如下:
Windows 字体类型
Creo Elements/Direct Modeling UI 元素
消息框
对话框和浏览器中的所有用户界面控件,多行编辑字段除外
菜单
应用程序菜单栏、弹出菜单
工具提示
工具提示、状态栏
对于 Creo Elements/Direct Modeling 的日语版本,多行编辑控件的默认字体是 "MS Gothic";对于所有其他版本,多行编辑控件的默认字体是 "Courier New"。其初始大小由消息框的字体决定。要更改初始大小,请单击文件 > 设置 > 用户界面。将打开用户界面设置对话框。在控件窗格中,单击修改按钮来更改字体。
默认情况下,Windows 选择的默认字体囊括了操作系统语言的所有字符;如果运行的是德语或日语版的 Windows,则默认字体已经设置好,以便您可以使用德语或日语文本,不会出现问题。
输出框
“输出”框提供三个与 Unicode 支持相关的右键单击菜单选项:
字体:设置当前选定文本的字体。如果未选择文本,Creo Elements/Direct Modeling 便会将指定的字体应用到随后输入的任何文本。
设置多行字体:(字体名称)
使用此方便的快捷方式更改多行编辑控件的默认字体 (类似于文件 > 设置 > 用户界面。将打开用户界面设置对话框。在控件窗格中,单击多行输入字段字体下的修改按钮)。只有在文本已选定且选定文本只使用一种字体的情况下,此上下文菜单条目才可见。
自动更改字体:此选项默认情况下为启用,便于“输出”框在您添加文本时自动更改当前字体。例如,当输入日语文本并且当前活动字体没有任何日语字符定义时,“输出”框将自动选择能够显示日语字符的字体。禁用此选项时,“输出”框将使用全局多行编辑控件字体。
这些菜单条目在常规文本编辑器中提供的上下文菜单中也可用。
常规文本编辑器
常规文本编辑器提供编辑功能,具体是在停放在编辑器窗口顶部的工具栏中。根据启动编辑器所使用的命令,在最右边工具栏位置上可能会显示一个附加的专用按钮。例如,Creo Elements/Direct Annotation 文本命令在此按钮中显示标题“特殊字符”,并且此按钮将打开“特殊字符”表:
编辑器可以使用 Unicode 和 Legacy 编码加载文本文件。存储编辑器中的文本时,所生成的文件始终采用 UTF-8 编码,并且文件以 UTF-8 BOM 开头。
标签和字体
Creo Elements/Direct Modeling 使用笔划字体在 3D 和 2D 视区 (即对于 3D Documentation 和 Creo Elements/Direct Annotation) 中显示标签和注释。默认笔划字体称为 osd_default;这是一种合并的字体,融合了字体 hp_i3098_vhp_hangul_chp_kanj2_c。因此,该字体适用于西欧和日语字符。在 Creo Elements/Direct Annotation 中,还有两种附加默认字体:
osd_default2 combines hp_i3098_c, hp_hangul_c,and hp_kanj2_c.
osd_default3 combines hp_d17_v, hp_hangul_c,and hp_kanj2_c.
Creo Elements/Direct Modeling 不区分一个字节和两个字节的字体。
为了提高对 Unicode 字符的覆盖度,Creo Elements/Direct Modeling 支持 Windows TrueType 字体。Creo Elements/Direct Modeling 将自动检测安装的 TrueType 字体,并将其转换为笔划字体格式。提供字体选择的对话框列出了 Creo Elements/Direct 提供的笔划字体以及从 TrueType 字体衍生的字体。因此,如果需要以 (比如) 中文显示 3D 注释,可以安装涵盖分配给中文字符的 Unicode 代码点的 Windows TrueType 字体,如 MS MinchoCreo Elements/Direct Modeling 将从该字体衍生出笔划字体,然后便可以将笔划字体用于 3D 注释。
如果 3D 注释具有已经分配的合并字体 (如 osd_default),并且以较早的向后兼容 Creo Elements/Direct Modeling 格式保存,那么 Creo Elements/Direct Modeling 将仅分配合并字体的一种组件字体给注释标签。精确字体选择取决于当前语言。如果当前语言是日语,则使用双字节子字体,否则使用单字节子字体。
符号使用单独的符号字体 (hp_symbolshp_symbols2)。
文件名转换
请参阅 文件格式和编码
语言设置
请参阅 加载或导入文件
文件的向后兼容性
Creo Elements/Direct Modeling 2007 年之前的版本不支持整套 Unicode 字符,这些版本对字符串使用不同的编码。对于 Creo Elements/Direct Modeling 为其提供导出功能的一些应用程序来说也是如此。将数据导出到此类应用程序时,Creo Elements/Direct Modeling 必须将字符串从内部 UTF-16 表示转换为外部字符集和编码。由于并非所有目标均支持整套 Unicode,转换过程可能无法传递所有字符。例如,由于 CoCreate Modeling 2006 以及之前的版本从不支持俄语,所以将俄语字符从该版本的 Creo Elements/Direct Modeling 导出的任何尝试都可能导致部分数据丢失。
文件格式表显示 Creo Elements/Direct Modeling 中的各种导出和导入功能使用和支持哪些编码。根据必须连接到的应用程序的种类,可能要限制到 Creo Elements/Direct Modeling 和目标应用程序两者都支持的 Unicode 字符集的子集。
有两个示例可以说明这一点:
假设当前运行的是 Creo Elements/Direct Modeling 的德语版本,并创建包含德语字符和中文字符的模型。您的开发伙伴仍在使用 CoCreate Modeling 2006,所以您在向后兼容模式下存储模型,以进行数据交换。德语版的 CoCreate Modeling 2006 使用名为 HP-Roman8 的编码对字符串中的字符进行编码,于是,此编码就是您的 Creo Elements/Direct Modeling 版本要转换到的编码。但是,HP-Roman8 只适用于英文字符和欧洲语言的字符,不适用于中文字符。因此,将中文字符写入 CoCreate Modeling 2006 文件格式时无法对其进行转换。
VRML 1.0 文件使用 US-ASCII 对字符串进行编码,因此严格来说,以此格式存储数据时,将只使用英文字符。
在向后兼容模式下存储 Creo Elements/Direct Modeling 数据 (*.sd 格式) 时,字符串和名称必须转换为 Legacy 编码。结构浏览器中显示的对象名称可能包含超出特定 Legacy 编码范围的字符。要保持唯一性,此类字符将由十六进制的 Unicode 脚本 (U+XXXX) 替换。此特殊处理方法仅适用于对象名称。在其他地方,如 3D 注解中,下划线字符将替换无法转换的字符。
* 
将此类文件加载回当前版本的 Creo Elements/Direct Modeling 中时,U+XXXX 脚本不会转换回对应的 Unicode 字符。
加载较早的文件时,Creo Elements/Direct Modeling 会自动将字符串转换为其内部 UTF-16 编码。源编码按以下方式确定:
如果旧文件包含关于文件 (版本 14.50 或更高版本) 中所含字符串所使用的语言的信息,则此信息用于衍生源编码。例如,假定 HP-Roman8 用于西欧语言数据,Shift-JIS 用于日语数据。
如果不存在此类信息 (CoCreate Modeling 2006/v14.0x 及之前的版本,即大多数情况下),则 Creo Elements/Direct Modeling 假定待加载文件所含字符串和当前 Creo Elements/Direct Modeling 使用同一种语言。因此,将 (比如) CoCreate Modeling 2004 文件加载到德语版的 Creo Elements/Direct Modeling 中时,Creo Elements/Direct Modeling 会假定该文件包含德语字符串并使用 HP-Roman8 编码。
较早版本的 Creo Elements/Direct Modeling 使用的假设与此基本相同。但是,因为将旧数据加载到 Creo Elements/Direct Modeling 中时,将执行从 Roman8 或 Shift-JIS 的显式转换,因此这种假设现会产生实际的结果。如果尝试以不支持的方式 (如将日语数据加载到英文版本中) 混合并匹配 Legacy 编码,会导致数据丢失。
文件浏览器还提供显式覆盖自动编码检测和转换的选项。这很有用,例如,尝试将日语旧文件加载到德语版的 CoCreate Modeling 2007 中时。
编辑 Unicode 文本文件
并非所有文本编辑器都能正确处理 Unicode 文本文件。例如,写字板 (write.exe,Windows 附带) 可以损坏大于 4094 个字节的 UTF-8 文件。Microsoft 为此提供了 修补程序,可以向 Microsoft 索取。但是,我们不建议使用写字板编辑 UTF-8 文件。
Creo Elements/Direct Modeling 附带定制版本的优秀开源编辑器 Notepad++,这款编辑器可以正确地处理 UTF-8 和 UTF-16 文件。我们还为 Creo Elements/Direct Modeling Lisp 和 Creo Elements/Direct Drafting 宏语言提供语法荧光笔文件。如果您的系统安装有 Notepad++,Creo Elements/Direct Modeling 将用它作为默认外部编辑器。
其他建议的编辑器:
vim 和 gvim,设置为 :set encoding = utf-8 和 :set bomb
XEmacs 21.5 以及更高版本
Emacs 22 以及更高版本
Microsoft Visual Studio
也可以使用 Microsoft 的记事本。但是,记事本不会正确处理 Unix 样式行尾,因此,必须在编辑之前将文件转换为 DOS 样式行尾。