【问题标题】:How can I insert Hebrew text into columns? [SQL 2000]如何将希伯来语文本插入列中? [SQL 2000]
【发布时间】:2013-12-16 13:54:13
【问题描述】:

我尝试将希伯来语文本值插入一列, 但它会将值更改为 Gibberish。 一个例子:

mssql_query ("UPDATE TABLE SET COLUMON = N'בדיקה'");

您可以假设,它会更改列的值,但值更改为?????,如果我尝试从查询分析器执行此操作,它工作正常。

我的专栏的排序规则是HEBREW_CI_AS。我怎样才能解决这个问题?

【问题讨论】:

  • 失败时用什么插入值?
  • 我的 php 代码失败:mssql_query ("INSERT INTO MEMB_INFO (User, Pass, Name) VALUES ('Joni', '123456', 'גוני דף')");
  • 请提供表格定义。你的 Db 排序规则是什么?
  • 我不知道什么是表定义,我认为这很正常……而且我不在数据库排序规则中使用,因为我在这个数据库中有更多包含二进制、十六进制和英文列的表。如果我将数据库排序规则更改为希伯来语_CI_AS 在其他表中损坏:X
  • 试试这个INSERT INTO MEMB_INFO (User, Pass, Name) VALUES ('Joni', '123456', 'גוני דף' COLLATE HEBREW_CI_AS)。不要以纯文本形式保存密码!!!

标签: php sql-server-2000 hebrew


【解决方案1】:

您需要为您正在使用的INSERT 语句中的字符串指定排序规则。此外,您插入的字符串应该是 UNICODE 数据类型 - 为此使用 N 前缀。

INSERT INTO MEMB_INFO(用户、密码、姓名)值('Joni'、'123456'、N'גוני דף' COLLATE HEBREW_CI_AS)

检查 PHP 变量是否可以处理 unicode 字符。否则它将是 PHP 将您的字符串变成问号。

您可以查看SQL Server drivers for PHP。 还有来自 PHP 文档的 Unicode Character Properties

一些关于 PHP 和 unicode 的资源:

http://www.sitepoint.com/bringing-unicode-to-php-with-portable-utf8/

http://php.net/manual/en/function.utf8-encode.php

http://allseeing-i.com/How-to-setup-your-PHP-site-to-use-UTF8

http://www.yiiframework.com/wiki/16/how-to-set-up-unicode/

http://pageconfig.com/post/portable-utf8

【讨论】:

  • 你能给我举个例子吗?
  • 对不起,我不做 PHP。我添加了一些链接供您参考。
  • 感谢您的帮助!但我没有得到我的问题的答案,我尝试了一切。但!我将我的列类型更改为 nvarchar 并显示中文字母或类似的东西,列类型需要是什么?
【解决方案2】:

如果其他人遇到此问题,我会解决此问题,这是我的解决方法:

  1. 为这个特定的表创建一个新数据库,或者为您的网站创建一个表。
  2. 将希伯来语_CI_AS 设置为排序规则(每个人都使用他创建的内容)。
  3. 在您的 PHP 代码中,使用 mb_convert_encoding() 函数进行 SELECT 和 INSERT。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2011-09-02
    • 2011-11-29
    • 2013-05-26
    相关资源
    最近更新 更多