周海汉/文
朋友要用sugarcrm的php读取Ms sql server的中文资料,因为其原始资料是Access 数据库,导到mysql不太方便。但导到sqlserver 2005后,发现其中文编码只支持GB 和 UCS-2(unicode 16),所以直接在数据库中查询显示正确,但使用php的utf9编码显示时则全是乱码。
找了大量资料,什么使用mssql,freetds,odbc,ado或直接每次查询和写入都进行转码等建议都有。不过实际测试中,发现Ado这种方法是好用的。
代码如下:
查询结果(与使用sql server managment studio效果一样):
ID
Title
114b0775-d9b2-db90-fcda-4a2f2cd7cdbd |
鏍紡浼氱ぞ鏈潵鍟嗕簨 629487 |
1d270085-a588-9ea7-584c-4a2f2c8d1a5b |
Fabriqu茅 Interation氓l 79436 |
23 |
中文 |
36ea2575-fe34-61b0-e5ae-4a2f2c791d22 |
Berufskolleg f眉r Elektrotechnik 65790 |
3834261a-fd48-9d4a-be40-4a2f2c5fc256 |
Berufskolleg f眉r Elektrotechnik 529523 |
52c9652c-82c8-ec2b-72ae-4a2f2c3a58d6 |
鏍紡浼氱ぞ鏈潵鍟嗕簨 42138 |
78931a0e-f582-f406-8a56-4a2f2c3741b0 |
But茅e Torique 700010 |
989473f7-6b7b-fed3-12a1-4a2f2c320645 |
A.B.銈便偄銉栥儸銈ゃ兂銈?181212 |
b4579151-55cb-5ae4-a5f1-4a2f2c173b18 |
B眉nde-Mitte 203765 |
d72c42c9-9e1d-b926-d931-4a2f2c2a3100 |
Berufskolleg f眉r Elektrotechnik 27682 |
e97002f1-035f-91d3-4592-4a2f2f780e01 |
zhh |
其中,23 ID的编码是GB2312的,其余是utf-8的。
而使用odbc则跟使用mssql_connect效果一样。
查询结果:
ID
Title
114b0775-d9b2-db90-fcda-4a2f2cd7cdbd |
株式会社未来商事 629487 |
1d270085-a588-9ea7-584c-4a2f2c8d1a5b |
Fabriqué Interationål 79436 |
23 |
���� |
36ea2575-fe34-61b0-e5ae-4a2f2c791d22 |
Berufskolleg für Elektrotechnik 65790 |
3834261a-fd48-9d4a-be40-4a2f2c5fc256 |
Berufskolleg für Elektrotechnik 529523 |
52c9652c-82c8-ec2b-72ae-4a2f2c3a58d6 |
株式会社未来商事 42138 |
78931a0e-f582-f406-8a56-4a2f2c3741b0 |
Butée Torique 700010 |
989473f7-6b7b-fed3-12a1-4a2f2c320645 |
A.B.ケアブレイン��?181212 |
b4579151-55cb-5ae4-a5f1-4a2f2c173b18 |
Bünde-Mitte 203765 |
d72c42c9-9e1d-b926-d931-4a2f2c2a3100 |
Berufskolleg für Elektrotechnik 27682 |
e97002f1-035f-91d3-4592-4a2f2f780e01 |
zhh |
因为odbc 也没有设置内码页的地方。
分享到:
相关推荐
MySQL中的汉字乱码问题是一个常见的困扰许多开发人员和数据库管理员的问题。这主要涉及到字符编码设置不正确,导致在存储或显示汉字时出现乱码。在MySQL中,字符集是用来定义如何存储和处理字符的规则,它包括服务器...
然而,在实际使用过程中,我们可能会遇到两个常见的问题:远程访问限制和中文乱码显示。这两个问题的解决方法是多方面的,涉及配置文件的修改、权限设置以及字符集的调整。 首先,让我们来谈谈如何开启 MySQL 的...
MySQL数据库在处理中文字符时,有时会出现乱码问题,这主要与字符集设置不正确有关。本文将深入探讨MySQL中文乱码问题的原因、解决方法,以及如何在创建数据库和表时避免这类问题。 首先,我们要了解字符集的概念。...
在Linux平台上进行PHP和MySQL的开发时,遇到中文乱码问题是一个常见的困扰。这主要涉及到字符编码设置不一致的问题。本文将详细介绍如何解决Linux(如Ubuntu 14.04 LTS)上PHP与MySQL通信产生的中文乱码问题。 首先...
在使用MySQL的过程中,经常会遇到中文乱码的问题,这不仅影响了数据的正确读取,也会导致用户体验下降。中文乱码的原因主要有以下几点: 1. **Server本身的设定问题**:比如仍然使用的是`latin1`字符集而非更广泛的...
由于在连接MySQL时设置了字符集为`gb2312`,因此在处理非英文字符时可能会遇到编码问题。建议在实际应用中考虑使用更通用的字符集如`UTF-8`。 #### 3.3 安全性考虑 本示例代码中直接使用变量拼接SQL语句,容易受到...
在构建PHP与MySQL的Web应用平台时,中文乱码问题是一个常见的困扰。这个问题主要源于字符集的不兼容和转换机制的缺失。字符集是计算机存储和处理文本的基础,特别是对于包含多种语言的环境,如中文,正确选择和配置...
在进行Web开发时,尤其是在处理中文内容时,经常会遇到一个让人头疼的问题——中文乱码。这通常发生在使用PHP与MySQL组合搭建的网站上。中文乱码不仅影响用户体验,还可能引发数据错误,因此解决这个问题至关重要。 ...
- **问题描述**:如果MySQL服务端的默认字符集设置为`latin1`等非Unicode编码,则在存储或检索包含中文数据的记录时可能会出现乱码现象。 - **解决方案**: - 修改`my.cnf`或`my.ini`配置文件中的`[mysqld]`部分,...
在PHP与MySQL结合开发Web应用时,乱码问题是一个常见的困扰。这主要涉及到字符编码的配置不一致,导致数据在存储或展示时出现问题。本文将详细介绍一个详细的解决方案,以确保PHP与MySQL之间的通信以及页面显示均能...
MySQL数据库在处理中文字符时,有时会出现中文乱码的问题,这通常是由于字符编码设置不一致导致的。在本文中,我们将深入探讨这个问题,并提供一种解决方案——通过修改配置文件来解决MySQL中文乱码。 首先,我们...
在MySQL数据库中遇到中文乱码问题,通常可以归结为以下几个方面: 1. **Server本身的设定问题**:比如服务器使用的字符集仍停留在老旧的`latin1`而非支持更广泛字符集的`utf8`或`utf8mb4`。 2. **表的语系设定问题*...
在使用PHP+MySQL开发Web应用时,经常会遇到中文乱码的问题。这不仅影响用户体验,也会影响系统的可用性。本文将详细介绍如何解决PHP+MySQL在处理中文时出现的乱码问题。 #### 二、解决方案概述 解决中文乱码的关键...
在MySQL数据库中遇到乱码问题通常涉及到字符编码设置不一致或不正确的情况。当数据存入数据库时出现乱码,这可能是由于在数据传输、存储或显示的过程中,字符集配置不匹配导致的。下面我们将详细探讨如何解决MySQL中...
在MySQL数据库中处理中文字符时,可能会遇到插入和读取中文数据出现乱码的问题。这个问题通常是由于字符编码不一致导致的。以下是一些关键知识点,帮助你理解和解决MySQL中文乱码问题。 1. **字符集与编码** - **...
在使用MySQL数据库时,中文字符的支持是一个常见的问题,尤其是在处理多语言内容时。"让MySql彻底支持中文_解决mysql数据库乱码"这个主题聚焦于如何确保MySQL正确地存储和显示中文字符,避免出现乱码情况。这通常...
MySQL在处理某些特定字符集时可能会遇到兼容性问题,例如UTF-8的4字节编码支持不足,导致某些非拉丁语系字符无法正确存储和检索。 ### 乱码相关问题处理 针对“mysql客户端插入中文内容后再查询却返回乱码”等问题...
本文将深入探讨PHP与MySQL在处理中文字符时可能出现的乱码问题,并提供一系列全面的解决方案。 首先,我们需要了解编码的基础知识。常见的中文编码有GBK、GB2312和UTF-8。GBK是GB2312的扩展,包含了更多的汉字。UTF...