gpt4 book ai didi

ruby-on-rails - "U+2010"!= "-"(或 : handling copy/pasted unicode characters with Rails and Postgresql)

转载 作者:行者123 更新时间:2023-11-29 12:13:02 24 4
gpt4 key购买 nike

我有一个由 postgresql 9.3 支持的 Rails 3.2/Ruby 2.0 应用程序。

人们将“PS-3002S-BK”等字符串复制/粘贴到网络表单中。连字符是“U+2010”。数据以utf-8格式保存到postgresql。

然后,当他们搜索“PS-3002S-BK”(带有 ascii 连字符)时,没有返回任何数据,因为“PS-3002S-BK”!=“PS-3002S-BK”。

处理此问题的最佳方法是什么?

最佳答案

如果您将数据保存到具有明确定义的正确格式(例如序列号或型号等)的列中,则始终转换常见类型的 hyphen (U+2010, U+2011) 或 dash (U+2012, U+2013, U+2014, U+2015) 在将其保存到数据库之前,由您的 Web 应用程序减去 ASCII。最好在这种类型的列中禁止除 ASCII 之外的任何内容。

此外,当您在这个定义明确的格式列中搜索时,也始终将连字符和破折号也转换为 ASCII 减号。

如果因为您在普通文本(如评论等)中搜索示例而无法搜索,则应将搜索字符串“PS-3002S-BK”拆分为单词并搜索“PS”+“3002S”+“BK” ".

关于ruby-on-rails - "U+2010"!= "-"(或 : handling copy/pasted unicode characters with Rails and Postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21685998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com