gpt4 book ai didi

c# - MySQL 连接器/网络和 C# 的希腊字符不正确

转载 作者:行者123 更新时间:2023-11-29 08:44:52 25 4
gpt4 key购买 nike

我正在尝试创建一个从 MySQL 数据库读取数据的 C# 项目。

数据是从使用 utf-8 编码的 php 页面插入的。页面和数据都是utf-8。

数据本身是希腊单词,例如“Λεπτομέρεια 3”。

获取数据时,它看起来像“δεπτοÎ⁄ÎÏεÎ1α 3”。

我已在连接字符串中设置“charset=utf8”,并尝试使用“set session character_set_results=latin1;”查询。

当对 mysql (linux)、MySQL Workbench、OpenOffice 与 OpenOffice Base 的 MySQL native 连接器执行相同操作时,数据显示正确。

我是不是做错了什么或者我还能做什么?

运行查询“SELECT value, HEX(value), LENGTH(value), CHAR_LENGTH(value) FROM call_attribute;”从我的程序里面。它返回:

值:Î´ÎµÏ €Ï„ο

十六进制(值):C38EE280BAC38EC2B5C38FE282ACC38FE2809EC38EC2BFC38EC2BCC38EC2ADC38FC281C38EC2B5C38EC2B9C38EC2B12033

长度(值):49

CHAR_LENGTH(值):24

有什么想法吗???

最佳答案

您声明数据的第一个字符是大写 lambda,Λ

该字符的 UTF-8 表示为 0xCE 0x9B ,而 HEX() 值以 C38E 开头,这确实是带有抑扬符的大写 I,如您的问题所示。

所以我猜最初的错误不在 PHP 配置中,并且您认为“数据正确显示”的印象是错误的,并且是由于编码问题造成的。

另请注意,希腊字母仅需要 Latin-7当将希腊语数据存储为单字节字符而不是 Unicode 时,而不是 Latin-1。

很可能,您在这里遇到编码问题,这意味着不同的应用程序将二进制数据解释为不同的字符集或编码。 (但由于缺乏 PHP 和 MySQL 知识,我无法真正帮助您如何正确配置)。

关于c# - MySQL 连接器/网络和 C# 的希腊字符不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com