相关疑难解决方法(0)

UTF-8:一般?滨?Unicode的?

我试图找出我应该用于各种类型数据的排序规则.我将存储的100%内容是用户提交的.

我的理解是我应该使用UTF-8通用CI(Case-Insensitive)而不是UTF-8 Binary.但是,我无法找到UTF-8 General CI和UTF-8 Unicode CI之间的区别.

  1. 我应该将用户提交的内容存储在UTF-8 General或UTF-8 Unicode CI列中吗?
  2. UTF-8二进制适用于哪种类型的数据?

mysql collation utf-8

271
推荐指数
5
解决办法
16万
查看次数

如何更改数据库的默认排序规则?

我们以前的程序员在表(Mysql)中设置了错误的排序规则.当它应该是UTF8时,他用拉丁校对设置它,现在我有问题.每个有中文和日文字符的记录都会转到??? 字符.

是否可以更改整理并获取角色的细节?

mysql sql collation

161
推荐指数
4
解决办法
14万
查看次数

UTF-8字符有问题; 我看到的不是我存储的东西

我试图使用UTF-8并遇到麻烦.

我尝试了很多东西; 这是我得到的结果:

  • ????而不是亚洲人物.即使是欧洲文本,我也得到Se?orSeñor.
  • 奇怪的胡言乱语(Mojibake?)如Señor新浪新闻????.
  • 黑色钻石,如Se or.
  • 最后,我陷入了数据丢失或至少被截断的情况:Sefor Señor.
  • 即使我看到正确的文字,它也没有正确排序.

我究竟做错了什么?我该如何修复代码?我可以恢复数据,如果是,如何恢复?

mysql unicode utf-8 character-encoding mariadb

66
推荐指数
3
解决办法
3万
查看次数

在MySQL中,我应该选择哪种排序规则?

当我通过phpMyAdmin创建一个新的MySQL数据库时,我可以选择排序规则(例如-default,armscii8,ascii,...和UTF-8).我知道的是UTF-8,因为我总是在HTML源代码中看到这一点.但是默认排序规则是什么?这些选择之间有什么区别,我应该使用哪一个?

mysql collation

35
推荐指数
3
解决办法
4万
查看次数

MySQL非法混合排序规则

查看我的prod日志后,我提到了一些错误:

[2012-08-31 15:56:43] request.CRITICAL: Doctrine\DBAL\DBALException: 
An exception occurred while executing 'SELECT t0.username ....... FROM fos_user t0 WHERE t0.username = ?'
with params {"1":"Nrv\u29e7Kasi"}:

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT)
and (utf8_general_ci,COERCIBLE) for operation '=' 
Run Code Online (Sandbox Code Playgroud)

Alghout我在学说cfg下有UTF-8默认值:

doctrine:
    dbal:
        charset:  UTF8
Run Code Online (Sandbox Code Playgroud)

好像我的所有MySQL表都在latin1_swedish_ci,所以我的问题是:

我是否可以手动更改utf8_general_ci所有表格的校对而无需任何复杂/预防措施?

mysql collation symfony fosuserbundle symfony-2.1

18
推荐指数
2
解决办法
2万
查看次数

如何使用mysql.connector从mysql返回str?

我使用Python3,并尝试使用mysql.com中的MySQL Connector/Python

我有UTF-8编码表,当我获取行时,我的所有字符列都返回像bytearray一样.这让人有些困惑.

我怎么能直接获取str?

UPD:

# -*- coding: utf-8 -*-
import mysql.connector
con = mysql.connector.connect( user ="root", db = "vg_site_db", charset = 'utf8' )
cursor = con.cursor()
sql = """select caption from domains
"""
cursor.execute( sql )
row = cursor.fetchone()
while row is not None:
    print( row )
    row = cursor.fetchone()
Run Code Online (Sandbox Code Playgroud)

输出:

(bytearray(b'ezsp.ru'),)
(bytearray(b'eazyshop.ru'),)
(bytearray(b'127.0.0.1:8080'),)
(bytearray(b'rmsvet.ru'),)
Run Code Online (Sandbox Code Playgroud)

我想要:

('ezsp.ru',)
('eazyshop.ru',)
('127.0.0.1:8080',)
('rmsvet.ru',)
Run Code Online (Sandbox Code Playgroud)

UPD2:

我的表使用COLLATE utf8_bin

python mysql collation utf-8 python-3.x

13
推荐指数
2
解决办法
7353
查看次数

是否存在utf8_unicode_cs排序规则?

有谁知道MySQL的utf8_unicode_cs校对是否存在?到目前为止,我的搜索已经枯竭了.如果它还不存在,创建一个是否相当简单?或者以某种方式使用utf8_unicode_ci或utf8_bin但是"模拟"人们对utf8_unicode_cs整理的期望?

mysql collation utf-8

11
推荐指数
1
解决办法
2290
查看次数

如何使用PHP构建支持票证系统?

我有一个自定义和简单的基于/的用户系统.我正在尝试为成员构建一种方式,向我们的员工发送产品支持(将其放入数据库并在管理区域中查看),并让他们管理这些消息.

有没有人知道一个好的现有脚本,或者更好的方法来获得我网站的支持区域?

php mysql ticket-system ticket-tracking

10
推荐指数
2
解决办法
3万
查看次数

Drupal 7 - 使用db_select不区分大小写LIKE

我无法使用MySQL和Drupal 7获得不区分大小写的查询.这是我的模块代码:

$results = db_select('people_table', 'p')->fields('p');
if (array_key_exists('department', $_GET)) {
    $results->condition('Department', '%' . db_like($_GET['department']) . '%', 'LIKE');
}
return $results->orderBy('Name', 'ASC')->execute();
Run Code Online (Sandbox Code Playgroud)

随着?department=Chemistry在URL中,我得到三个结果.随着?department=chemistry在URL中,我没有得到任何结果.当我尝试时$results->condition('UPPER(Department)'...,我收到此错误:

PDOException:SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'UPPERDepartment':SELECT p.*FROM {people_table} p WHERE(UPPERDepartment LIKE:db_condition_placeholder_0 ESCAPE'\\')ORDER BY Name ASC;

所以看起来它吃掉了我的括号.我怎么能不区分大小写LIKE

编辑:Department列和整个表上 的排序规则是utf8_bin. 这个答案说:"唯一特别的是utf8_bin,用于比较二进制格式的字符." 我不知道为什么选择这种排序规则,因为表中的所有数据都是英文文本.我可能只是将整理更改为utf8_general_ci.

php mysql drupal case-insensitive drupal-7

3
推荐指数
1
解决办法
8733
查看次数