Posts match “ str() ” tag:

str()型態

以下都是str()型態,而非unicode。

  • "我是中文"
  • abc
  • 'abc' + '我是中文'

unicode型態

  • u'我是中文'
  • u'abc'
  • u'abc' + u'我是中文'

注意事項

  • 如果要用str.format()進行字串格式化,如果字串是unicode型態,要指定字串型態為unicode才能呼叫format(),例如: u'Hi, {}\n'.format("我是大白"),否則將會出錯。
  • str 和 unicode 直接相加會產生錯誤訊息,例如: u'abc' + '我是中文'將會出現「UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)」錯誤訊息。
  • unicode型態的字串如果要寫入檔案,則要先做encoding,例如file.write(u'我是中文'.encode('UTF-8'))
  • 如果噴出
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
    
    則可以將所有str型態的利用unicode(string, 'utf8')轉成unicode型態。