try the script I gave you, start with that.

On Feb 21, 2014, at 5:17 PM, Kin <kinrac...@gmail.com> wrote:

> The python version is: 2.7.3
> 
> And while attempting to commit my change, this is the error message I 
> obtained:
> 
> UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-5: 
> ordinal not in range(256)
> 
> I actually did obtain that a couple of time while trying to send a unicode 
> string as argument to the ORM class.
> 
> 
> On Friday, February 21, 2014 11:42:52 AM UTC-8, Kin wrote:
> Hello.
> 
> i am not being able to write those traditional chinese characters to my mysql 
> database.
> 
> From my understanding of the link below:
> http://docs.sqlalchemy.org/en/rel_0_9/dialects/mysql.html
> 
> I should have been able to write unicode characters to my mysql database, and 
> be able to read them as written.
> 
> Unfotunately, while writing them as: '軟件開發人員'
> I obtained their utf8 encoded version which is: '軟件開發人員'
> 
> i did attempt writing them manually to sqlalchemy and the whole process work.
> But I do not understand why this not working with sqlalchemy while I 
> specifically requested it to be written to the database as utf8 using 
> "charset=utf8" , then read from it as unicode using "use_unicode=1'"
> 
> the mysql version is: 5.5.35-0ubuntu0.12.04.2-log
> the sqlalchemy version is:0.8.3
> 
> Please let me know what you think.
> 
> Here is the code i used to fill the database, table and columns:
> 
> from sqlalchemy import create_engine
> from sqlalchemy import Column, String, BigInteger
> from sqlalchemy.ext.declarative import declarative_base
> 
> from sqlalchemy import types
> 
> from sqlalchemy.dialects.mysql import VARCHAR
> 
> engine = 
> create_engine('mysql+mysqldb://root:foo@<dbIpaddress>/testdb3?charset=utf8&use_unicode=1')
> 
> Base = declarative_base()
> 
> class Writers3(Base):
>     __tablename__ = "writers3"
>     __table_args__ = {'mysql_engine': 'InnoDB'}
>     id = Column(BigInteger(20), primary_key=True)
>     account  = Column(VARCHAR(length=25, unicode = True))
> 
>     def __init__(self, account):
>         self.account = account
> 
> Base.metadata.create_all(engine)
> 
> 
> And here is the code I used to fill the table with values:
> 
> from clean_table_def import Writers3
> 
> from sqlalchemy.ext.declarative import declarative_base
> 
> from sqlalchemy import create_engine
> 
> from sqlalchemy.orm import sessionmaker, scoped_session
> 
> db_url = 'mysql://root:foo@dbIpAddress/testdb3'
> 
> engine1 = create_engine(db_url, pool_recycle=2*60*60)
> 
> Session = sessionmaker(bind=engine1)
> 
> session = Session()
> 
> object1 = Writers3( '軟件開發人員')
> 
> session.add(object1)
> 
> session.commit()
> 
> session.close()
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/groups/opt_out.

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to