Как создать автоматически сгенерированное поле даты / времени в Play! / JPA?

Я просто подумал, что я упомянул кое-что здесь, с которым мне пришлось долго экспериментировать, прежде чем я наконец понял, что происходит. Это может быть настолько очевидным для всех здесь, что они не удосужились упомянуть об этом. Но это помогло бы мне, если бы у них было, поэтому по этому принципу ...!

NB: Я использую Jython , в частности, v 2.7, так что, возможно, это может не быть примените к CPython ...

NB2: первые две строки моего .py-файла здесь:

# -*- coding: utf-8 -*-
from __future__ import print_function

«%» (AKA «механизм интерполяции») механизм построения строки также вызывает ДОПОЛНИТЕЛЬНЫЕ проблемы ... Если кодировка по умолчанию «среда» - это ASCII, и вы пытаетесь сделать что-то вроде

print( "bonjour, %s" % "fréd" )  # Call this "print A"

. Вам не составит труда работать в Eclipse ... В окне Windows CLI (DOS) вы обнаружите, что кодировка - это кодовая страница 850 (моя ОС Windows 7) или что-то подобное, что, по крайней мере, может обрабатывать символы с акцентом в Европе. он будет работать.

print( u"bonjour, %s" % "fréd" ) # Call this "print B"

также будет работать.

Если OTOH вы направляете файл из CLI, то стандартная кодировка будет None, которая по умолчанию будет ASCII (на моей ОС в любом случае), который не сможет обрабатывать ни одну из вышеприведенных распечаток ... (ужасная ошибка кодирования).

Итак, вы можете подумайте о перенаправлении своего stdout с помощью

sys.stdout = codecs.getwriter('utf8')(sys.stdout)

и попробуйте запустить в конвейере CLI файл ... Очень странно, что печать A выше будет работать ... Но печать B выше выкинет ошибку кодирования ! Далее будет выполнено следующее:

print( u"bonjour, " + "fréd" ) # Call this "print C"

Вывод, к которому я пришел (временно), состоит в том, что если строка, указанная как строка Unicode , использующая «u префикс отправлен в механизм% -handling, который, как представляется, предполагает использование кодировки среды по умолчанию, независимо от того, было ли вы настроено перенаправление stdout!

Как люди справляются с этим, это вопрос выбора. Я хотел бы приветствовать эксперта Unicode, чтобы сказать, почему это происходит, независимо от того, было ли у меня это неправильное в некотором роде, какое предпочтительное решение для этого, относится ли оно также к CPython , происходит ли это в Python 3 и т. д. и т. д.

15
задан Community 23 May 2017 в 12:03
поделиться