可以安全地假设 librdf_uri_as_string ()
返回的字符串吗?使用UTF-8编码。或者也许ISO-Latin (带有额外的 URL 编码)?
我正在处理 librdf_model
中的 URI,该 URI 是使用 librdf_parser_parse_file_handle_into_model ()
从 FILE *
读取的。如果我切换到 raptor_parser 会有帮助吗(也许还有 raptor_iostream 而不是 FILE *)? Raptor文档特别提到了 UTF-8。
librdf_parser
只是 raptor_parser
的包装器,因此答案是 UTF-8 吗?
最佳答案
librdf 如果比 Raptor 抽象一层。基本上,librdf 是一个应用程序级库,它将 Raptor、Rasqal 和 RDF 存储包装在一起。如果您在 librdf 级别上工作,那么您基本上应该只使用 librdf API,尽管到处都有一些漏洞抽象。
通常在 API 中,当您看到以 (const) unsigned char *
形式传入的字符串时,它始终是 UTF-8。只有一些标识符(例如语法名称)作为 (const) char *
传递,并且它们是 ASCII。
披露/警告:我是 Redland 项目的提交者,但近年来并没有积极参与这些项目。我曾经很了解内部结构,但我的内存力并不完美。
回答具体问题:
Is it safe to assume that strings returned by
librdf_uri_as_string ()
use UTF-8 encoding.
是的。
Would it help if I switch to a
raptor_parser
(and perhapsraptor_iostream
instead ofFILE *
as well)?
不,实际上没有什么区别。只是少了一些可以忽略不计的包装代码和略有不同的 API。
Is
librdf_parser
just a wrapper forraptor_parser
and the answer is UTF-8 because of that?
是的。
关于encoding - Redland RDF 中 URI 的字符串表示形式的字符编码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21024405/