- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
怎么样力this ODBC driver以 UTF-8 编码?
我正在编写 PHP 5. 5. 应用程序,该应用程序通过使用 ODBC 驱动程序的 PDO 连接到数据库 Microsoft SQL Server 2014。更具体地说,我正在使用“ODBC Driver 11 for SQL Server”。
我在两个环境(平台)中运行应用程序:
为了配置 PDO 连接,我使用 DSN 源。要连接到 SQL 服务器,我使用以下命令:
$conn = new PDO("odbc:mssql_test", $user_name, $password);
由于它是 PHP 应用程序,因此我要求 SQL 中的数据以 UTF-8 编码返回。数据库中的数据包含捷克字符,当数据未采用 UTF-8 编码时,这很棘手。
在生产平台上,一切正常。查询按预期返回(以 UTF-8 格式)。
但是,我无法在 Windows 10(开发平台)上配置 DSN,以获取 UFT-8 中的数据(看起来我正在获取在 win1250 中编码的数据),当查询结果中出现捷克语字符作为问号时,这一点值得注意。
为了配置 DSN,我使用位于以下位置的 Windows DSN 管理工具:
C:\Windows\System32\odbcad32.exe
我将 DSN 添加到选项卡“系统 DSN”,但没有设置编码的选项。
是否有任何方法或解决方法可以在 Windows 10 上获取 UTF-8 格式的数据(不使用 PHP 方式,例如 iconv
、mb_convert_encoding
,因为它是唯一的开发问题或 DSN 配置问题)。
请注意,我尝试过这样的想法,但没有成功:
$conn = new PDO("odbc:mssql_test", $user_name, $password, array("charset" => "UTF-8"));
$conn->exec("set names utf8");
或者(下面的代码可以工作,但在 Windows 上无法获取 UTF-8)
$dsn = "odbc:DRIVER={ODBC Driver 11 for SQL Server};SERVER=$server_address};CHARSET=UFT-8";
$conn = new PDO($dsn, $user_name, $password);
任何帮助将不胜感激!
3个月后编辑我最终切换到 FreeTDS 和 Linux 进行开发和生产环境。目前,在使用 PHP 5.5 时似乎不可能将 ODBC 驱动程序 11 配置为 UTF-8 编码。在 Windows 10 上...
最佳答案
在 Windows 上使用 ODBC 时,数据库客户端字符集在非 Unicode 应用程序的语言设置中定义。 SQL Server 客户端使用当前的 ANSI 代码页 (ACP)。
在 Windows 10 上,点击开始并输入区域,选择区域和语言设置,然后点击管理语言设置>。单击更改系统区域设置并选中使用 unicode UTF-8 ...
这应该可以解决问题。
关于sql-server - 在 Windows 10 上为 SQL Server 的 ODBC Driver 11 设置 DSN 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34205727/
编辑 1 我尝试创建并使用系统 DSN。我按照下面类似的步骤进行了成功的连接尝试。然后我修改了连接字符串以引用这个新的 DSN。我收到错误指定的 DSN 包含驱动程序和应用程序之间的架构不匹配。 为了
编辑 1 我尝试创建和使用系统 DSN。我按照以下类似步骤进行了成功的连接尝试。然后我修改了我的连接字符串以引用这个新的 DSN。我收到错误消息The specified DSN contains a
有人可以帮我解决这个问题吗?我需要通过系统 DSN 检查我与 AS400 服务器的 ODBC 连接,如果不存在特定的系统 DSN,则创建一个系统 DSN。我试过谷歌搜索,但没能找到对我有好处的东西。
我正在托管环境中编写一个小型 ASP.NET 应用程序(这意味着我不拥有该服务器)。 使用托管提供商的 webtools,我创建了一个指定驱动程序、服务器、UID、PWD 和数据库的 DSN。当我测试
有一段时间,我一直在尝试让一个 visual basic 6 应用程序在 Windows 7 中运行。最后一个问题是它在启动时找不到 DSN。凭直觉,我删除了系统 DSN 并以完全相同的方式创建它,但
在 AX2012 中,我想建立一个到 SQL Server 2008R2 的 ODBC 数据库连接。为此,我构建了 32 位系统 DSN“SQL Server Native Client 10.0”(
我有一个 SQL 数据库,并希望使用 VBA 连接到它以支持某些旧功能。我正在使用 ADODB 连接并且需要知道我的数据库 DSN 是什么。我怎样才能找到这个? 我正在使用 SQL Server 20
我从System32加载odbccp32.dll,甚至尝试从SysWow64使用。我使用SQLConfigDataSource函数为指定的驱动程序配置系统DSN。此功能可以成功配置32位驱动程序,但对
所以我创建了以下 docker-compose.yml 文件 web: build: ./config/apache volumes: - ./code:/var/ww
我有一个使用链接的 sql server 表作为数据源的 Access 表单。我需要尽快将此文件分发给其他用户,并且我需要一种方法来以编程方式将 DSN 安装到他们的机器上。这是手动设置链接的过程:
当尝试配置 symfony Messenger 时总是出现错误 No transport supports the given Messenger DSN "doctrine://default".
下面是在 VBA 应用程序中填充列表框的代码: Private Sub Form_Open(Cancel As Integer) ''#Populate list box control. D
PHP PDO 使用这种风格: MySQL mysql:host=hostname;dbname=databasename 在各自单独的参数中使用用户名和密码 PostgreSQL pgsql:hos
我有一个 Excel 应用程序,我想在其中向用户显示数据源名称(即 DSN)的列表,以便她/他可以选择要使用的数据源。 希望一旦获得列表,我就可以轻松访问 DSN 属性以连接到适当的数据库。 请注意,
PHP PDO 使用这种风格: MySQL mysql:host=hostname;dbname=databasename 在各自单独的参数中使用用户名和密码 PostgreSQL pgsql:hos
PDO DSN 的官方文档页面尚未列出用户名或密码。这些键值对的正确名称是什么? 最佳答案 看起来文档还没有更新,但是this is the related change来自 PHP 的源存储库,说明
我们有一个 ASP.NET 网站,该网站使用我们希望能够使用连接字符串访问的数据库。我们已经成功设置了一个 DSN 来连接到该数据库,但我似乎无法发现连接字符串的正确魔力。 有没有一种简单的方法可以将
我正在尝试在运行时创建一个 ACCESS DB,并使用以下代码在 ODBC.ini 中注册为 DSN: BOOL fCreated; fCreated = SQLConfigDataSource(N
我遇到了这个错误: The specified DSN contains an architecture mismatch between the Driver and Application 尝试使
我第一次尝试在 PHP 中使用异常,但进展不太顺利。 我有一个名为dsn的变量,它包含PDO/MySQL的连接字符串。 当我在 dsn 上使用 var_dump 时,它返回“null”,因此我可以假设
我是一名优秀的程序员,十分优秀!