【问题标题】:What's the character encoding for string representations of URIs in Redland RDF?Redland RDF 中 URI 的字符串表示的字符编码是什么?
【发布时间】:2014-01-09 15:31:37
【问题描述】:

假设librdf_uri_as_string () 返回的字符串使用UTF-8 编码是否安全。或者可能是ISO-Latin(带有额外的 URL 编码)?

我正在处理 librdf_model 中的 URI,它是用 librdf_parser_parse_file_handle_into_model ()FILE * 读取的。如果我切换到raptor_parser(也可能是raptor_iostream 而不是FILE *)会有帮助吗? Raptor 文档特别提到了 UTF-8。

librdf_parser 只是 raptor_parser 的包装,因此答案是 UTF-8?

【问题讨论】:

  • 我不确定答案是什么,但这似乎是一个关于库的非常具体的问题,最好通过适当的邮件列表发送给开发人员。这里的答案也可以;我只是希望你在那里有更好的运气。
  • Thx,但是我对 SO 上的那个库(也)有很好的答案。还有一个现有的标签Redland
  • 是的,freenode 上有 redland-dev@lists.librdf.org 和 #redland,但 Stack Overflow 也适用于问答。

标签: encoding uri rdf utf redland


【解决方案1】:

librdf 如果从 Raptor 提升一个抽象级别。基本上,librdf 是一个应用程序级库,它将 Raptor、Rasqal 和 RDF 存储包装在一起。如果您在 librdf 级别工作,则基本上应该只使用 librdf API,尽管这里和那里有一些泄漏的抽象。

通常在 API 中,当您看到作为 (const) unsigned char * 传入的字符串时,它一直是 UTF-8。只有一些标识符(例如语法名称)作为(const) char * 传递,并且它们是ASCII。

披露/警告:我是 Redland 项目的提交者,但近年来一直没有积极参与这些项目。我以前很了解内部情况,但我的记忆力并不完美。

回答具体问题:

假设librdf_uri_as_string ()返回的字符串使用UTF-8编码是否安全。

是的。

如果我切换到raptor_parser(也可能是raptor_iostream 而不是FILE *)会有帮助吗?

不,几乎没有区别。只是可以忽略不计的更少包装代码和稍微不同的 API。

librdf_parser 只是 raptor_parser 的包装,因此答案是 UTF-8?

是的。

【讨论】:

  • +1 你当然知道你的Redland 仍然很好引用:)
猜你喜欢
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 2017-04-11
  • 2012-10-19
  • 2020-04-15
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
相关资源
最近更新 更多