【问题标题】:Inserting filename in database在数据库中插入文件名
【发布时间】:2015-02-10 12:29:52
【问题描述】:

我正在使用带有 codeigniter 的 plupload 来上传文件。

但是当文件名有特殊字符时就会出现问题。

示例:当文件名为“cópia”时,插入“co?pia”

我必须在数据库中插入原始文件名并在应用程序中声明“UTF-8”

有人可以帮忙吗?


编辑:问题是该字段在 latin1 上,而我的应用程序在 UTF-8 上。如果我转换该字段,我会遇到问题吗?

【问题讨论】:

    标签: codeigniter special-characters plupload non-ascii-characters


    【解决方案1】:

    在将数据插入数据库之前,使用 $this->security->sanitize_filename() 删除无效文件名

    更多信息可以在这里找到 https://ellislab.com/codeigniter/user-guide/libraries/security.html

    要声明 UTF-8,您需要修改 应用程序/config/database.php

    $db['default']['char_set'] = "utf8"; $db['default']['dbcollat​​'] = "utf8_general_ci";

    【讨论】:

    • 我的数据库等于这个
    【解决方案2】:

    两部分:

    1,你的读者。 确保您的阅读器(可能是您的编码程序)使用 UTF8

    2,您的数据库也在 UTF8 上, 对于 MS-SQL 服务器,该列应为 nvarchar()

    【讨论】:

    • 问题出在数据库中。该表使用 UTF-8,但字段编码使用 latin1。有什么建议吗?
    • 你的数据引擎是什么?应该很容易像“mySQL latin1 to UTF8”一样在谷歌上搜索
    • 我的引擎是innoDB。桌子的问题真的很大。将其转换为 UTF-8 会更困难
    • 对于巨人,我将创建一个新的表或列,然后编写一个小程序逐块填充它,否则您可能会遇到事务日志问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多