Найти - Пользователи
Полная версия: txt unicode python 2.6
Начало » Python для новичков » txt unicode python 2.6
1
legioner
привет всем
есть txt файл в unicode кодировке.
внутри файла китайские иероглифы. нужно получить коды иероглифов.

#!/usr/bin/env python

import sys

def main():
fo = open("daodetsin.txt", "rb")
str = fo.read(1000)
print(str)
fo.close()

if __name__ == '__main__':
main()
выводит не понятно что. заранее спасибо)
Alex2ndr
1. Какие коды то? в какой кодировке?
2. Зря используете зарезервированное имя str в качестве переменной. Может это тоже причина проблемы.
3. .encode для вашей строки использовали? или .decode для юникода, если в файле действительно он(т е utf8|utf16).
4. Или вот это надо?
In [4]: d = u'Тест'

In [5]: d.__repr__()
Out[5]: "u'\\xd0\\xa2\\xd0\\xb5\\xd1\\x81\\xd1\\x82'"
igor.kaist
Нет такой кодировки, как юникод, есть например utf-8.
s=fo.read().decode('utf-8')
print ord(s[0])
P.S. Не хорошо называть свои переменные именами встроенных функций (str)
legioner
извиняюсь за не недостоверную информацию.
текст в utf-8
str исправил

igor.kaist очень помог ваш пример.

теперь возник вопрос
как сохранить в БД(MySql) иероглиф зная его код. чтобы иероглиф отображался(шрифты у меня установлены)
просто когда я записываю сохраняется код.

не пинайте за то что много вопросов задаю)
igor.kaist
legioner
как сохранить в БД(MySql) иероглиф зная его код
Если именно по кодам, то есть функуния unichr, которая выдает символ в юникоде, по “коду”. А уже готовую юникодную строку, пишите в базу в utf-8 ( out.encode('utf-8') )
legioner
спс. но возникли трудности.
вывожу спомощю PyQt
сначала вывожу символ все правильно label1
потом получаю код и преабразовываю в символ и вывожу label2 но результат не одинаков с label1
label1 = Qt.QLabel("常".decode('utf-8'),frame)
temp = ord("常".decode('utf-8'))
out = unichr(temp)
label2 = Qt.QLabel(out.encode('utf-8'), frame)
legioner
вот поэкспериментировал, теперь выводит правильно
но логику я не понял :), может кто объяснит
temp = ord("常".decode('utf-8'))
out = unichr(d)
temp2 = out.encode('utf-8')

label = Qt.QLabel("常".decode('utf-8'),frame)

label2 = Qt.QLabel(temp2.decode('utf-8'), frame)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB