Προς το περιεχόμενο

MySQL - Django can not display international -greek - characters


Προτεινόμενες αναρτήσεις

Δημοσ.
 

Έχω συνδέσει επιτυχώς την MySQL DB με το Django Framework μέσω της μονάδας MySQL module και μπορώ να αποθηκεύσω επιτυχώς ελληνικούς χαρακτήρες με το ORM του Django σε CMD των Windows. Η βάση δεδομένων έχει δημιουργηθεί με phpmyadmin και collation utf8_unicode_ci.

 

Δυστυχώς δεν μπορώ να πραγματοποιήσω το αντίστροφο, αφού έχω κάνει όλες τις ρυθμίσεις που αναφέρονται στην σελίδα  και δυστυχώς τα ελληνικά δεν παίζουν μέσω ORM και DOS αλλά μόνο τα λατινικά.

 

Παραθέτω και μερικές φωτογραφίες με τα δεδομένα της βάσης MySQL όπως είναι αποθηκευμένα αλλά το αντίστροφο δεν συμβαίνει.

 

 

Ευχαριστίες

post-338980-0-15023600-1460360338_thumb.jpg

post-338980-0-85991800-1460360338_thumb.jpg

Δημοσ.

Δεν χρησιμοποιώ αυτό το πρόγραμμα αλλά είχα ένα παρόμοιο πρόβλημα με ελληνικά σε μια βιβλιοθήκη της python (matplotlib)

Ψάχνοντάς το βρήκα ότι δεν μου εμφάνιζε ελληνικούς χαρακτήρες διότι είχε default γραμματοσειρά κάποια serif

και μετά στο documentation ότι υπήρχε κάποια εντολή με την οποιά μπορούσες να αλλάξεις τα defaults του αρχείου ρυμθίσεων με κάποιες εντολές συγκεκριμένα για την matplotlib την εντολή matplotlib.rcParams['παράμετρος']='τιμή' έτσι δίνοντας matplotlib.rcParams['font.family']='Arial' 

είχα ελληνικά χωρίς πρόβλημα

Ψάξε λοιπόν το documentation μήπως το πρόβλημα είναι παρόμοιο

Δημοσ.

Υπάρχει τρόπος όμως να ξέρει τον αριθμό του χαρακτήρα, για να καταλάβει αν δουλεύει με Unicode ή όχι.

 

http://stackoverflow.com/questions/13106175/how-to-find-out-number-name-of-unicode-character-in-python

 

Από εδώ δεν δούλεψε τίποτα;

https://docs.djangoproject.com/es/1.9/topics/i18n/

Δημοσ.

Πιθανότατα αυτό που πρέπει να κάνεις είναι να προσθέσεις

'OPTIONS': { 'init_command': 'SET names "utf8"' }

στο settings.py

 

Ελπίζω να καταλαβαίνεις καλύτερα απο μένα τι σημαίνει αυτό, γιατί δεν έχω την παραμικρή ιδέα από Django.

  • Like 1
Δημοσ.

Έκανα τις ρυθμίσεις που αναφέρονται σε αυτό το άρθρο  και δυστυχώς έχω τα ίδια προβλήματα. Σας παραθέτω εικόνες με το πρόβλημα και τις ρυθμίσεις, όσο αφορά το κομμάτι της MySQL (phpmyadmin).

 

 

Ευχαριστίες

post-338980-0-53656200-1460539756_thumb.jpg

post-338980-0-35532800-1460539757_thumb.jpg

post-338980-0-45668600-1460539758_thumb.jpg

Δημοσ.

Αν εισαι σε development mode(django server) και δε μιλαμε για production machine. Σβησε τη βαση που εκανες μεσω phpmyadmin και δημιουργησε μια νεα, σωστα με πινακες, με το collation που θες, μεσω cli. Σιγουρεψου οτι στο settings.py ειναι ολα σωστα. Εναλλακτικα πειραματισου με sqlalchemy, δε σε δεσμευει σε ενα rdbms.

Δημοσ.

Εγώ πάντως, με τον τρόπο που το περιγράφεις δεν έχω καταλάβει το πρόβλημα σου.

ποιο είναι δηλαδή το αντίστροφο του:

μπορώ να αποθηκεύσω επιτυχώς ελληνικούς χαρακτήρες με το ORM του Django σε CMD των Windows.

Δημοσ.

Από κονσόλα προς βάση, αν κατάλαβα είναι οκ. Το ανάποδο έχει θέμα. Γιατί προφανώς η κονσόλα είναι Ansi  στην εμφάνιση, ενώ έρχονται UTF8. Οπότε όταν είναι αγγλικά δεν υπάρχει θέμα, ενών ελληνικά υπάρχει αφού το UTF8 θέλει μετατροπή.

Δημοσ.

On general principle θα έλεγα ότι UTF-8 στην κονσόλα των Windows, do not even bother.

 

Μπορείς να δοκιμάσεις να δώσεις πρώτα chcp 65001 οπότε ναι μεν η κονσόλα θα γυρίσει σε UTF-8 αλλά... όπως είπα do not even bother.

Δημοσ.

Αν το πρόβλημα σου είναι όντως να δεις στην κονσόλα τα ελληνικά, κανονικά don't even bother on windows. Δεν ξέρω αν κανένα powershell γίνεται τίποτα, αλλά με cmd.exe διόλου παράξενο που αντιμετωπίζεις προβλήματα.

Δημοσ.

Δημιούργησα μόνο την βάση δεδομένων μέσω phpmySQLadmin και με collation ut8_unicode_ci, τα υπόλοιπα τα έκανε το django μόνο του με τις εντολές schemamigration και migration, γιατί το syncdb δεν υπάρχει στην έκδοση που δουλεύω 1.9.

Καταχώρησα τις εγγραφές στην βάση δεδομένων πάλι μέσω του Django και όχι της phpMySQLAdmin αλλά από Windows Console και django ORM. Πέρασα τα ελληνικά επιτυχώς και τα καταχώρησα στην βάση δεδομένων, το αντίστροφο δηλαδή το SELECT μέσω Windows Console και ORM δεν δουλεύει για εμένα.

Αρχικά καλώ την κονσόλα του Djago και ύστερα παίζω με το ORM (entity.objects.all() αφού κάνω αρχικά import την αντίστοιχη entity από τα μοντέλα). Η απάντηση είναι ότι το Windows Console δεν υποστηρίζει utf-8 χαρακτήρες και προσπάθησα να το αλλάξω με chcp 65001 αλλά δυστυχώς έχω πρόβλημα σε Windows Console όταν φτάσω σε Django console χτυπάει σφάλμα ότι το 65001 δεν είναι διαθέσιμο! και δεν μπορώ να εκτελέσω το query μετά!!

 

Ψάχνωντας βρήκα θα μπορούσα να το εκτελέσω μόνο σε μορφή HTML και όχι αλλού εδώ. Αυτό που μπορώ να κάνω είναι να συνεχίσω στην κατασκευή των template και να δώ εάν θα υπάρξει εκεί παρόμοιο πρόβλημα. Αν κάποιος με βοηθήσει για Windows Console τότε τί να πώ (που είναι αδύνατο), χίλια ευχαριστώ !

 

Ευχαριστίες

 

Δημοσ.

Το ερώτημα είναι γιατί θες την κονσόλα; Αυτό δεν απαντάς...

 

Εγκατέστησε jupyter άνοιξε ένα notebook και κάνε από εκεί τη δουλειά σου. Εναλλακτικά βάλε ipython και δούλεψε από το qtconsole.

Δημοσ.

Δημιούργησα μόνο την βάση δεδομένων μέσω phpmySQLadmin και με collation ut8_unicode_ci, τα υπόλοιπα τα έκανε το django μόνο του με τις εντολές schemamigration και migration, γιατί το syncdb δεν υπάρχει στην έκδοση που δουλεύω 1.9.

Καταχώρησα τις εγγραφές στην βάση δεδομένων πάλι μέσω του Django και όχι της phpMySQLAdmin αλλά από Windows Console και django ORM. Πέρασα τα ελληνικά επιτυχώς και τα καταχώρησα στην βάση δεδομένων, το αντίστροφο δηλαδή το SELECT μέσω Windows Console και ORM δεν δουλεύει για εμένα.

Αρχικά καλώ την κονσόλα του Djago και ύστερα παίζω με το ORM (entity.objects.all() αφού κάνω αρχικά import την αντίστοιχη entity από τα μοντέλα). Η απάντηση είναι ότι το Windows Console δεν υποστηρίζει utf-8 χαρακτήρες και προσπάθησα να το αλλάξω με chcp 65001 αλλά δυστυχώς έχω πρόβλημα σε Windows Console όταν φτάσω σε Django console χτυπάει σφάλμα ότι το 65001 δεν είναι διαθέσιμο! και δεν μπορώ να εκτελέσω το query μετά!!

 

Ψάχνωντας βρήκα θα μπορούσα να το εκτελέσω μόνο σε μορφή HTML και όχι αλλού εδώ. Αυτό που μπορώ να κάνω είναι να συνεχίσω στην κατασκευή των template και να δώ εάν θα υπάρξει εκεί παρόμοιο πρόβλημα. Αν κάποιος με βοηθήσει για Windows Console τότε τί να πώ (που είναι αδύνατο), χίλια ευχαριστώ !

 

Ευχαριστίες

Για ελληνικά πρέπει chcp 1253 και αλλάζεις και την default γραμματοσειρά, δεν νομίζω όμως ότι αυτό είναι το πρόβλημα γιατί από ότι λες έχεις ελληνικά στην κονσόλα
Δημοσ.

Χρησιμοποιώ την κονσόλα γιατί θέλω να δώ αρχικά εάν έχω πρόβλημα με το Django ORM! Καμία άλλη  κονσόλα για να μπορώ να κάνω εύκολα την δουλειά μου (χωρίς πολύ configuration) και να μην υπάρχει πρόβλημα όπως με το cmd.exe?

 

Ευχαριστώ

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...