Python论坛  - 讨论区

标题:[python-chinese] django利用model,输入中文时的问题

2006年12月15日 星期五 00:49

brightman fenyon在126.com
星期五 十二月 15 00:49:24 HKT 2006

我用model
其中
class Pinfo(models.Model)
province = models.CharField(maxlength=10)
用于中文的省

我在winxp cmd下用manage.py shell时 输入
a=Pinfo(province='北京')
a.save()
报OperationalError: (1406, "Data too long for column 'province' at row 1")

>>> l='北京'.encode('utf-8')
>>> l
'\xe5\x8c\x97\xe4\xba\xac'

我觉得没有超过长度阿??

还有我发现:
>>> l='北京'
>>> l
'\xb1\xb1\xbe\xa9'
在cmd中敲入的'北京',是gbk编码,
语句应该为如下:
a=Pinfo(province='北京'.decode('gbk').encode('utf-8'))
它同样报了too long.为什么上面的没有编码转换错误?奇怪!!!


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月15日 星期五 08:44

limodou limodou在gmail.com
星期五 十二月 15 08:44:57 HKT 2006

> 我觉得没有超过长度阿??

建议你使用mysql的管理工具来看一下数据库的表字段的实际长度,很有可能你改过Model,但是没有更新表结构。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月18日 星期一 19:48

kering anyenet在gmail.com
星期一 十二月 18 19:48:08 HKT 2006

ÄãÓõÄÊÇ MySQL 5 °É£¿

On 12/15/06, limodou <limodou在gmail.com> wrote:
>
> > ÎÒ¾õµÃûÓг¬¹ý³¤¶È°¢£¿£¿
>
> ½¨ÒéÄãʹÓÃmysqlµÄ¹ÜÀí¹¤¾ßÀ´¿´Ò»ÏÂÊý¾Ý¿âµÄ±í×ֶεÄʵ¼Ê³¤¶È£¬ºÜÓпÉÄÜÄã¸Ä¹ýModel£¬µ«ÊÇûÓиüбí½á¹¹¡£
>
> --
> I like python!
> UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
Best regards,
by kering.
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061218/04e32d70/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月18日 星期一 23:17

brightman fenyon在126.com
星期一 十二月 18 23:17:59 HKT 2006

一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061218/62abc268/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月19日 星期二 14:39

kering anyenet在gmail.com
星期二 十二月 19 14:39:40 HKT 2006

¿´ÕâÀï:http://bbs.mysql.cn/thread-922-1-3.html

¿½±´²¿·ÖÈçÏ£º


×Ö·û¼¯ÓëÖÐÎĵÄÎÊÌâµÄÏêϸ˵Ã÷

ÂÛ̳ÖÐÓв»ÉÙÌû×ÓÊǹØÓÚ×Ö·û¼¯ÓëÖÐÎĵÄÎÊÌ⣬×Ðϸ¿´ÁËÏ£¬½²½âµÄ¶¼²»ÉõÏêϸ£¬±¾ÈËѧϰMySQLÒà½öÊýÈÕ£¬Ôڴ˽«±¾ÈË¿´ÊéÐĵÃÂÔ±íÒ»¶þ£¬ÍûÆðÅ×שÒýÓñ֮Ч¡£

================================

¹ØÓÚÖÐÎÄÎÊÌâʵ¼ÊÉϲ¢Ã»ÓÐʲô¸´Ôӵģ¬Çë×¢ÒâÈçÏÂ2¸öϸ½Ú£º

1£©Ö»ÒªÊÇgb2312,gbk,utf8µÈÖ§³Ö¶à×Ö½Ú±àÂëµÄ×Ö·û¼¯¶¼¿ÉÒÔ´¢´æºº×Ö£¬µ±È»£¬gb2312Öеĺº×ÖÊýÁ¿Ô¶ÉÙÓÚgbk£¬¶øgb2312,gbkµÈ¶¼¿ÉÔÚutf8ϱàÂë¡£Òò´Ë£¬ÒªÏëÊý¾Ý±íÖÐÄÜ´¢´æÖÐÎÄÖ»ÐèÊý¾Ý±íµÄ×Ö·û¼¯°´ÐèÈÎÑ¡Ò»ÖÖ¿É´æ´¢ºº×ֵļȿɡ£

ÔÚ½¨Á¢Êý¾Ý±íʱ£¬ÈôÊý¾Ý¿âµÄ×Ö·û¼¯²»Ö§³ÖÖÐÎļ¯ÔòÔÚcreate table ºóÃæ¼ÓÉÏ character set gb2312/gbk/utf8
ÈÎÑ¡ÆäÒ»¼È¿É£¬·ñÔòн¨µÄ±í»á×Ô¶¯²ÉÓÃÓëÊý¾Ý¿âÏàͬµÄ×Ö·û¼¯µÄ¡£
MySQL»¹ÓÐÒ»¸öºÜ°ôµÄµØ·½£¬¿ÉÒÔΪÁÐÖ¸¶¨×Ö·û¼¯£¬hoho~~ÎÒϲ»¶

×ÜÖ®£¬ÓÃshow create table table_name; ²é¿´È·±£ÄãµÄÊý¾Ý±íµÄ×Ö·û¼¯Ö§³ÖÖÐÎÄ´æ´¢¼È¿É




2£©ÖÁÓÚǰ̨ÏÔʾ¡¢ÊäÈëÖÐÎĵÄÎÊÌ⣬ÓÉÓÚ±¾È˲»»áphpµÈ£¨ËùÒÔÒ²²»Óÿͻ§¶ËÈí¼þ£©£¬Òò´Ë½ö¾ÍcmdϵÄclientΪÀý×÷˵Ã÷£¬ÏëÀ´ÔÚÆäËû¿Í»§¶ËÒ²Ó¦ÊÇÈç´ËÅäÖðɣ¬Óв»¶ÔµÄµØ·½ÍûÖ¸½Ì£¬ÓÐÒÅ©µÄÍû´ó¼Ò²¹³ä¡£

ºÜ¶àÌû×ÓÖÐ˵£¬ÐèÒªclientµÄ×Ö·û¼¯Óë·þÎñÆ÷¶Ë×Ö·û¼¯¡¢Êý¾Ý¿â×Ö·û¼¯µÈÒ»Ö£¬ÆäʵÎÞÐëÕâô¸´ÔÓ¡£

ÔÚÈκεÄ×Ö·û¼¯×´Ì¬Ï£¬ÎÒÃǶ¼¿ÉÒÔ¶Ô¿É´æ´¢ÖÐÎĵÄÊý¾Ý±í²åÈëÖÐÎÄ£¬Ö»ÐèÒªÔÚËùÒª²åÈëµÄÖÐÎÄÇ°Ìí¼ÓÒ»¸öintroducer±íÃ÷ÎÒÒª¶Ô´ËÖÐÎĵıàÂ뷽ʽ¼È¿É£¬Çë¿´£º
insert into table_name (column_with_chinese) values( _gbk 'ÎÒÒª²åÈëµÄÖÐÎÄ');
Õâ¸öÃüÁîÖеÄ_gbk¼´ÊÇÒ»¸ö"character set introducer"£¬Ëü±íÃ÷ºóÃæµÄ
'ÎÒÒª²åÈëµÄÖÐÎÄ'½«²ÉÓÃgbk±àÂë¡£Çë´ó¼Ò×¢ÒâintroducerºÍº¯Êýconvert()µÄÇø±ð£¬Õâ¸ö£¬Áô¸ø´ó¼Ò×Ô¼º²éÔÄ×ÊÁÏ¡£
ÕâÑù£¬ÎÞÂÛÔÚÈκÎ×Ö·û¼¯Ï£¬¶¼¿ÉÒÔ±£Ö¤ÕýÈ·ÎÞÎóµÄ²åÈëÖÐÎÄ£¬»òÕßÊÇÆäËûÈκÎ×Ö·û¼¯µÄÎÄ×Ö¡£


˵µ½ÕâÀ¿ÉÄÜ´ó¼Ò¾õµÃÌ«·³ÁË£¬Ã¿´Î¶¼Òª¼ÓÒ»¸öintroducer£¬ÄÇôÎÒÃÇÔÙÀ´¿´¿´mysqlµÄÉèÖ㬿´¿´Ôõô¼ò»¯Ëü¡£
ÓÃÃüÁîshow variables like 'character\_set\_%';²é¿´µ±Ç°×Ö·û¼¯É趨£º
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | latin1 |
| character_set_connection | latin1 |
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | latin1 |
| character_set_server     | utf8   |
| character_set_system     | utf8   |
+--------------------------+--------+
£¨ÎÒÕâÀïΪÁËÑÝʾ¹ÊÒâÉèÖóÉlatin1ÕâÖÖ²»Ö§³Ö¶à×Ö½ÚµÄ×Ö·û¼¯£©

ºÜ¶àÈË»áÓöµ½µÄ´íÎó£ºData too long for column 'XXX' at row
1£¬Æä²úÉúµÄÔ­ÒòÔÚÓÚcharacter_set_connectionµÄ×Ö·û¼¯ÉèÖã¬Èç¹ûÎÒÃÇÓÃÁËintroducer£¬ÄÇô¸Ã²ÎÊýÎÞÊÓ£»Èô½«´Ë²ÎÊý¸ÄΪÓëÊý¾Ý±íÖÐÎıàÂ뷽ʽÏàͬ£¬Èçgbk£¬ÔòÎÒÃÇ¿ÉÊ¡ÂÔµôintroducerµÄÊéд£¬´«µÝµ½·þÎñ¶ËµÄ×Ö·û´®½«×Ô¶¯ÒÔ¸Ã×Ö·û¼¯½øÐбàÂë¡£

´Ëʱ£¬ÎÒÃÇÓÃselectÃüÁîÀ´²é¿´Êý¾Ý±íÊý¾Ý£¬È´·¢ÏÖ»á³öÏÖÂÒÂëÏÖÏó£¬Òò´Ë£¬Çë´ó¼Ò×¢Òâcharacter_set_resultsÕâ¸ö²ÎÊý£¬Ëû±íʾµÄÊÇ·þÎñÆ÷¶Î·µ»Ø¸ø¿Í»§¶ËµÄ½á¹û¼¯Ëù²ÉÓõÄ×Ö·û¼¯£¬Òò´Ë£¬½öÐ轫´ËÉèÖóÉgbk£ºset
character_set_results = gbk; ÄÇôÎÒÃǾͿÉÒÔÕý³£µÄ²é¿´Êý¾Ý±íÄÚµÄÖÐÎÄÄÚÈÝÁË¡£


Óɴ˿ɼû³öÏÖÖÐÎÄÎÊÌâ×î¹Ø¼üµÄÁ½¸ö²ÎÊý¾ÍÊÇÒÔÉÏÕâÁ½¸ö£¬ÓÐЩÔòÆäËû²ÎÊýµÄº¬ÒåÁô¸ø¸÷λ×ÔÐвéÔÄ×ÊÁÏ¡£




On 12/18/06, brightman <fenyon在126.com> wrote:
>
> winxp mysql5
> kering дµÀ:
>
> ÄãÓõÄÊÇ MySQL 5 °É£¿
>
> On 12/15/06, limodou <limodou在gmail.com> wrote:
> >
> > > ÎÒ¾õµÃûÓг¬¹ý³¤¶È°¢£¿£¿
> >
> > ½¨ÒéÄãʹÓÃmysqlµÄ¹ÜÀí¹¤¾ßÀ´¿´Ò»ÏÂÊý¾Ý¿âµÄ±í×ֶεÄʵ¼Ê³¤¶È£¬ºÜÓпÉÄÜÄã¸Ä¹ýModel£¬µ«ÊÇûÓиüбí½á¹¹¡£
> >
> > --
> > I like python!
> > UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
> > My Blog: http://www.donews.net/limodou
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> --
> Best regards,
> by kering.
>
> ------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Best regards,
by kering.
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061219/d1550336/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号