构建对IDN域的搜索

时间:2013-05-28 10:14:25

标签: search idn

我们正在升级我们的系统以获得IDNA支持,但我目前正在努力进行域名搜索。在我们的域名组合中,您可以搜索域名。 IDNA域名在我们的数据库中保存为A标签(café-modern.com保存为xn--caf-modern-d7a.com),我们只需在浏览器中显示它时将其转换为U标签。

问题是这完全打破了我们的搜索 当有人搜索café-modern.com时,我可以轻松地将其转换为IDNA值,并在数据库查询的WHERE domain_name LIKE ?部分中使用该值,但有人搜索caféxn--caf-dma café-modern.com })也应该找到{{1}}

一个解决方案是将A标签和U标签值保存在数据库中,但是我希望保留这些值作为最后的手段,因为数据集非常大,我希望将数据库架构保持为尽可能简单。

1 个答案:

答案 0 :(得分:0)

这很正常。我一直在使用类似的系统。我认为你的设计不正确。不应该像(xn--caf-modern-d7a.com)那样保存,你可以像DB(café-modern.com)一样保存。在DB上录制时,必须将IDNA值转换为UTF8值(或另一个值)。因此,您可以在café-modern.com

中搜索caféWHERE domain_name LIKE ?