mysql - 在 MySQL 和 Ruby 中转义字符

标签 mysql ruby special-characters

我无法理解用户输入字段中的几个转义字符。

我知道它们是“智能”单引号和双引号,但我不知道如何在 mysql 中搜索它们。

ruby 中的字符,当 Ruby 的输出看起来像\222、\223、\224 等时

irb> "\222".length => 1

那么 - 你知道如何在 mysql 中搜索这些吗?当我查看 mysql 时,它们看起来像“?”。

我想查找文本字段中包含该字符的所有记录。我试过了

mysql> select id from table where field LIKE '%\222%' 

但这没有用。

更多信息 - 在执行 mysqldump 后,这是其中一个字符的表示方式 - '\\xE2\\x80\\x99'。这是聪明的单引号。

最终,我正在构建一个 RTF 文件,但字符完全错误,所以我现在尝试用“哑”引号替换它们。我能够执行 gsub(/\222\, "'")。

谢谢。

最佳答案

我不太明白你的问题,但这里有一些信息给你:

  • 首先,数据库中没有转义字符。因为每个字符都按原样存储,没有转义。
  • 他们“看起来不像 ?”。我只是错误的终端设置。 SET NAMES 查询总是应该首先执行,以匹配客户端编码。
  • 你必须确定字符集并在每个阶段使用它 - 在数据库中,在 mysql 客户端中,在 ruby​​ 中。
  • 您应该将 ruby​​ 字符串表示与字符本身区分开来。
  • 要在 mysql 查询中输入字符,可以使用 char function .但仅限于终端。在 ruby​​ 中,只需使用字符本身。
  • 智能引号看起来像用 unicode 编码的 2 字节。您必须先确定编码。

关于mysql - 在 MySQL 和 Ruby 中转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2701591/

相关文章:

ruby-on-rails - Heroku 部署的 Bootstrap 和 Rails 问题

ruby - 当官方方式不起作用时,如何升级 RVM?

MySQL 转义字符

ruby - 如果我输入 CTRL+D 是否可以中断 ruby​​ 程序?

batch-file - 如何使用延迟扩展来处理批处理脚本中的值

mysql - 拼音标示符号与MySQL

php - CakePHP显示2个日期之间的所有数据

php - Mysql插入多个唯一行

php - MySQL 意外关闭

mysql - GROUP BY 在 MySQL 中使用通配符