首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编译MO哈希表?

如何编译MO哈希表?
EN

Stack Overflow用户
提问于 2014-01-04 14:28:08
回答 1查看 299关注 0票数 2

我一直在使用PHP中的Gettext文件哈希表。虽然我不确定这个可选表有多重要,但我想确保在生成MO文件时,如果可能的话,我将实现完整的规范。

我在Mac上和Linux上使用Gettext msgfmt编译了一个带有条目msgfmt的简单PO文件。哈希表有5个字节长,但奇怪的是包含了大部分空字节,如下所示:01 00 00 00 00

运行从Gettext源代码中提取的算法,我将生成表01 00 02 03 04

这是我的测试代码

https://gist.github.com/timwhitlock/8255619 (包括示例PO文件)

我不写C,而是在Gettext源代码中摸索,以移植所显示的函数。

我自己的哈希表编译很可能是错误的,但是要理解为什么我想首先理解msgfmt生成的MO文件为什么有一个哈希表主要是零呢?

我很确定我正在正确地从MO文件中提取哈希表。我从第六个字节得到表的大小和位置,作为规范中概述了

在我的“abc”示例中,不使用双重散列,因此我不明白该表如何正确,不管我的表是否正确。

这个'abc‘示例正确的哈希表是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-04 17:39:46

我已经解决了这个问题。

我愚蠢地使用一个字节来保存哈希表中的每个整数。这是因为在C中看到了像hash_tab[idx]这样的东西,我的PHP将其转换为$hash_tab{$idx},这当然是错误的。会是substr($hash_tab,$idx,$idx+4)

我也没有看到哈希表的“大小”是字符串的数量,而不是字节长度。

我的示例代码现在起作用了。生成的表与从MO文件中提取的表匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20922192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档