有没有办法改变MySQL Workbench字符集?我的架构使用UTF-8,当我查看表数据(保存为UTF-8)或手动添加数据时,它出现charset错误,可能MySQL Workbench使用LATIN1.
我们的postgres生产数据库服务器有一个名为crd_production的数据库,它出自template1模板数据库.顺便提一下,在Ubuntu 12.04框中,初始创建pgcluster时template1和template0数据库的默认编码的默认编码为LATIN1.我删除了template1数据库并使用utf-8编码重新创建它,如下所示.
Name | Owner | Encoding | Collate | Ctype | Access privileges
----------------+----------+----------+------------+------------+-----------------------
crd_production | deployer | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
(4 rows)
Run Code Online (Sandbox Code Playgroud)
我们最终部署了rails(3.2.11)app并开始使用crd_productiondb作为主数据库.ActiveRecord写入/读取数据时没有问题,但是当我尝试从此psql数据库上的命令行触发任何sql查询时,会发生以下错误 -
crd_production=# select * from users; …Run Code Online (Sandbox Code Playgroud) 我正在发送以ISO 88591-1格式保存的文本文件,其中包含来自Latin-1范围的重音字符(以及普通的ASCII az等).如何使用C#将这些文件转换为UTF-8,以便ISO 8859-1中的单字节重音字符成为有效的UTF-8字符?
我尝试使用带有ASCIIEncoding的StreamReader,然后通过实例化编码ascii和编码utf8然后使用Encoding.Convert(ascii, utf8, ascii.GetBytes( asciiString) )- 将ASCII字符串转换为UTF-8,但重音字符被渲染为问号.
我错过了什么步骤?
我正在尝试将一些mysql表从latin1转换为utf8.我正在使用以下命令,这似乎主要起作用.
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)
但是,在一个表上,我收到有关重复键输入的错误.这是由"名称"字段上的唯一索引引起的.在转换为utf8时,似乎任何"特殊"字符都被索引为它们的直接英语等价物.例如,已存在名称字段值为"Dru"的记录.转换为utf8时,带有"Drü"的记录被视为重复记录.与"Patrick"和"Påtrìçk"相同.
以下是如何重现该问题:
CREATE TABLE `example` ( `name` char(20) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO example (name) VALUES ('Drü'),('Dru'),('Patrick'),('Påtrìçk');
ALTER TABLE example convert to character set utf8 collate utf8_general_ci;
ERROR 1062 (23000): Duplicate entry 'Dru' for key 1
Run Code Online (Sandbox Code Playgroud) 我即将承担将数据库从Latin1转换为UTF-8的繁琐且充满困难的任务.
此时我只想检查我在表中存储的数据类型,因为这将决定我应该使用哪种方法来转换数据.
具体来说,我想检查一下Latin1列中是否有UTF-8字符,最好的方法是什么?如果只有几行受到影响,那么我可以手动修复它.
选项1.执行MySQL转储并使用Perl搜索UTF-8字符?
选项2.使用MySQL CHAR_LENGTH查找具有多字节字符的行?例如,SELECT name FROM clients WHERE LENGTH(name) != CHAR_LENGTH(name);
难道这还不够?
目前我已将我的Mysql客户端编码切换为UTF-8.
我想禁止某些UTF-8输入(服务器端),例如东方语言,其中示例输入可能是"伊".
但是,我确实想继续支持其他拉丁语或"拉丁语"字符,例如威尔士语ŵ和ŷ,因此无法检查拉丁语1.
我有什么选择?(如果语言特定,PHP首选)
非常感谢.
推理:很多非西方角色的浏览器支持经常丢失(例如在不同的浏览器上我只看到上面问题中的一个框),所以对于像显示名称这样的东西,有时候限制它是合适的,即使它不适合消息体
我是python中的新手.今天当我写一些搜索功能时遇到错误.我使用sqlalchemy orm来做到这一点,在我的函数中,我输入一个中文单词作为关键词.html页面给我一个UnicodeEncodeError在/ user/search:'latin-1'编解码器不能编码位置0-1中的字符:序数不在范围内(256).我的代码是这样的:
def user_search(request):
name = request.GET.get('name').strip()
user_list = list()
if name:
user_list = User.get_by_name(name)
class User(object):
@classmethod
def get_by_name(cls, name):
return DBSession.query(cls).filter(cls.name==name)
Run Code Online (Sandbox Code Playgroud)
Traceback在这里:
Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/home/jiankong/git/admin-server/lib/decorators.py" in wrapper
75. return func(request, *args, **kwargs)
File "/home/jiankong/git/admin-server/lib/decorators.py" in wrapper
39. output = function(request, *args, **kwargs)
File "/home/jiankong/git/admin-server/apps/user/user_views.py" in user_search
47. users = jump_page(paginator, page)
File "/home/jiankong/git/admin-server/apps/user/utils.py" in jump_page
92. return paginator.page(1)
File "/usr/local/lib/python2.6/dist-packages/django/core/paginator.py" in page
37. number = self.validate_number(number)
File …Run Code Online (Sandbox Code Playgroud) 在Python 2.7中,如何将latin1字符串转换为UTF-8.
例如,我正在尝试将é转换为utf-8.
>>> "é"
'\xe9'
>>> u"é"
u'\xe9'
>>> u"é".encode('utf-8')
'\xc3\xa9'
>>> print u"é".encode('utf-8')
é
Run Code Online (Sandbox Code Playgroud)
字母是é,它是LATIN SMALL LETTER E WITH ACUTE(U + 00E9)UTF-8字节编码为:c3a9
拉丁字节编码为:e9
如何获得拉丁字符串的UTF-8编码版本?有人可以举例说明如何转换é?
我刚检查了我的MySQL表,我将默认设置为latin1.这通常是默认的吗?
如何让我希望数据库为utf-8的所有表格都明确?
我知道有一个db配置可以改变默认值,但我认为还有一种方法可以实现每次迁移.我怎么能永久地将我的rails迁移从现在开始设置为utf-8?
谢谢!
latin1 ×10
utf-8 ×8
mysql ×5
encoding ×3
python ×2
c# ×1
collation ×1
django ×1
installation ×1
iso-8859-1 ×1
migration ×1
mysql-python ×1
php ×1
postgresql ×1
python-2.7 ×1
sqlalchemy ×1
workbench ×1