【问题标题】:Convert All mysql Text to ascii form将所有 mysql 文本转换为 ascii 形式
【发布时间】:2012-06-26 03:03:20
【问题描述】:

我有一个 mysql 数据库,其中存储了带有非编码特殊字符的文本。 例如,表格中的单元格包含Texas A&M 之类的文本

我希望数据库中的所有文本都具有适当的 ascii 格式。 例如,Texas A&M 应该是 Texas A&M

这是一个大型数据库,我想确保 this ASCII chart 中的所有字符都被计算和转换。

有什么好的方法可以做到这一点?

【问题讨论】:

    标签: database ascii data-conversion


    【解决方案1】:

    您说您要确保“此 ASCII 图表”中的所有字符,但那里的图表包含所有可打印字符,所以我认为您实际上并不想按照您所说的去做。相反,您可能希望对 XML、URL 或 HTML 进行编码。

    最简单的方法是将数据加载到您拥有的任何 XML 处理工具中,然后让它完成工作。也就是说,我发现 99% 的时间,当人们存储“预编码”数据时,他们实际上并不想要这样:他们想要对数据进行编码以获得某些输出。以本机形式存储数据然后在使用/输出时进行编码要好得多。

    原因很简单:你见过窗口标题看起来像"Installing X&Y Application" 的应用程序吗?这是因为数据被认为“仅用于 Web 输出”并进行了预编码。但即便如此,Web 输出在 HTML、URL 和 XML 交换上下文中是不同的,因此预编码数据确实将您限制在其中一种选择中,而不是在输出时进行正确的编码。

    如果你真的想这样做,你需要提供更多关于你正在使用的环境的细节(实际的数据库类型和可用的编程语言)。

    【讨论】:

    • 你是对的,转换的目的是因为在网站上使用的数据将通过返回 xml 的 web 服务调用传递(到移动设备)我考虑在发送回之前转换字符(特别是对于移动设备)但是我认为在负载下实际预先转换数据会更好。这不是什么大不了的事吗?
    • 如果数据大部分是静态的,则预先转换数据将是一个优势,因此转换成本和存储可以自己支付。访问数据的次数将决定中断的位置。举一个积极的例子,许多在线内容管理系统都保留了一个Cached 表,用于存储事物的转义版本。在这种情况下,如果缓存副本不存在源数据已更改,则会在访问时创建它们。请注意,即使在这种情况下,源数据也会被保留,缓存会被预渲染和转义,因为 only 使用会输出到 HTML。
    • 数据大多是静态的。某些数据可能每年更改一次。预计负载不错,每天有 6K 到 8K 的 Web 服务请求(该网站已经每天提供大约 12K 的服务)。缓存的数据库听起来是个好主意,但我必须确保当前有足够的存储空间。
    • 从这个角度来看,我已经针对每周 600 万次点击运行了非缓存(按需编码),同时 CPU 费用仅略有增加(从每月 100 美元到 120 美元/月)。
    • 哇,听起来棒极了!感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2010-10-06
    相关资源
    最近更新 更多