2

我在将希伯来语字符串插入 MySql 时遇到问题。

介绍

  1. 我将 MySql 设置为 Utf8。
  2. 我使用排序规则 uft8_general_ci 将表设置为 charset utf8
  3. 我将连接字符串设置为:“Server= ;Database= ;Uid= ;Pwd= ; charset=utf8;”
  4. 我编写了存储过程以通过 c# 使用它。
  5. MySql 版本:5.1.53

当我只是通过 MySql 将希伯来语字符串插入到表中时:

insert into temp_table (temp_column) values ('ערך')

我认为是正确的。如果我将存储过程设置为它..我看到胡言乱语。

当我通过 c# 调用它时,我得到异常为'不正确的字符串值:'\xD7\xAA\xD7\xA8...' for column...'

如果我插入英文字符串,那么我会得到所有正确的。

任何的想法?

4

3 回答 3

2

您说您将表设置为字符集 UTF8,但您是否也将列编码设置为 UTF8 ?

和/或在执行存储过程之前尝试向 MySql发送SET NAMES utf8;命令。

SET NAMES 指示客户端将使用什么字符集将 SQL 语句发送到服务器。因此,SET NAMES 'cp1251' 告诉服务器,“来自该客户端的未来传入消息在字符集 cp1251 中。” 它还指定服务器用于将结果发送回客户端的字符集。(例如,如果您使用 SELECT 语句,它指示用于列值的字符集。)

于 2010-12-31T16:16:43.810 回答
1

我添加到存储过程字符集 utf8

在 SP_CityName VARCHAR(100) 字符集 utf8,在 SP_CitySynonyms mediumtext 字符集 utf8

现在它工作正常......非常感谢你们。

于 2010-12-31T18:20:08.697 回答
0

使用 Text/LongText 而不是 varchar。也使用排序规则作为 utf8_general_ci

于 2012-12-13T10:14:52.657 回答