【问题标题】:SHFB - problems with umlauts in .NET xml filesSHFB - .NET xml 文件中的变音符号问题
【发布时间】:2012-11-21 09:01:53
【问题描述】:

我们正在使用 Sandcastle 和 SHFB 为 .NET 项目创建文档。基本上,这行得通。

不幸的是,我们正在使用带有德语语言包的 .NET(这将保持这种状态 ;-)),但显然 SHFB 在加载带有德语变音符号的 .NET 自己的 XML 文件时存在问题。

我们得到的是 XmlParser 抛出的异常,看起来它无法正确读取文件(尽管文件内的编码设置为 UTF8)。问题是这些文件不受我们的控制,它们是由 Microsoft 创建的。

一个可能的解决方案可能是卸载 .NET 的德语语言包,但首先这更像是一种解决方法而不是解决方案,其次卸载程序警告我们“一个或多个产品我停止工作”......这有点太关键了,不能尝试一下。

有官方解决方案吗?

【问题讨论】:

    标签: .net internationalization sandcastle shfb


    【解决方案1】:

    我不确定这是否能解决您的问题,但您可以尝试使用变音符号的数字表示。

    取自 Sandcastle 帮助文件生成器页面:

    当使用实体表示 XML 中的特殊字符时 语言资源文件或标题文本、版权文本等, 使用数字形式而不是名称形式,因为 XML 解析器将 无法识别它们并会抛出异常。例如,如果您 指定 Ä(带分音符号的拉丁文大写字母 A)例外 会生成。要修复它,请改用数字形式 (& #196;)。 这也适用于版权文本中的 © 等符号。 相反,您应该使用 & #169;获取版权符号。

    注意: & 和 # 之间的空格是我插入的,以避免格式化。

    here字符的数字表示

    【讨论】:

    • 基本上,这并不能解决问题,因为我们需要预处理所有 .NET 自己的 XML 文件(这应该是微软的任务,而不是我们的 ;-))。
    • @Golo Roden:基本上你是对的。但微软似乎没有以 Sandcastle 的 LanuagePacks 形式提供支持
    猜你喜欢
    • 2020-04-30
    • 2013-01-11
    • 2016-05-03
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多