【问题标题】:Special Characters in php - SQL Serverphp 中的特殊字符 - SQL Server
【发布时间】:2013-06-28 09:20:45
【问题描述】:

我是在 Windows Server 2008 和 SQL Server 上使用 PHP 的新手。当我想发布(或使用 get 方法)一些变量并将它们存储在数据库中时,它会转换像空格这样的字符 -> %20é -> %C3,但我没有不希望系统存储%20%C3,而是存储实际字符é。我怎样才能做到这一点?页面编码为 utf-8,排序规则为 Latin1_General_100_CS_AS

【问题讨论】:

    标签: php sql-server encode


    【解决方案1】:

    我打算试一试,但是当您执行 get 时,表单数据正在被编码到 URL 中,您将获得这种行为。使用 post 方法不必对空格的表单值进行编码,而是对特殊字符进行编码。这是一个很好的参考,http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/

    【讨论】:

      【解决方案2】:

      http://php.net/manual/en/function.urldecode.php

      试试urldecode

      它将采用 url-safe 表示并将它们转换为实际字符。见the manual

      请注意手册中的警告,您不必对 GET 或 POST 变量执行此操作。它们会自动解码。

      $my_var = $_GET['my_weird_character'];
      

      $my_var 应该已经被解码并准备好进入你的数据库。你试过了吗?在担心和问这样的问题之前,为什么不先尝试一下,看看它是否有效?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 2018-09-24
        相关资源
        最近更新 更多