Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 构建IDNA域的搜索_Search_Idn - Fatal编程技术网

Search 构建IDNA域的搜索

Search 构建IDNA域的搜索,search,idn,Search,Idn,我们正在升级我们的系统以获得IDNA支持,但我目前正在努力进行域搜索。在我们的域名组合中,您可以搜索域名。IDNA域在我们的数据库中保存为它们的A标签(café-modern.com保存为xn--caf-modern-d7a.com),我们在浏览器中显示时将其转换为U标签 问题是这完全破坏了我们的搜索。 当有人搜索café-modern.com时,我可以轻松地将其转换为IDNA值,并将其用于数据库查询的WHERE domain_\u name LIKE?部分,但当有人只搜索café(xn--ca

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

问题是这完全破坏了我们的搜索。
当有人搜索
café-modern.com
时,我可以轻松地将其转换为IDNA值,并将其用于数据库查询的
WHERE domain_\u name LIKE?
部分,但当有人只搜索
café
xn--caf dma
)时,也应该找到
café-modern.com


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

这很正常。我一直在使用类似的系统。我认为你的设计是错误的。不应该保存为like(xn--caf-modern-d7a.com),您可以在DB上保存为like(café-modern.com)。在DB上录制时,必须将IDNA值转换为UTF8值(或另一个值)。因此,您可以在
WHERE domain\u name LIKE?
中搜索
café-modern.com
café