Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Who converts data when writing to a database with an encoding different from utf8?
#1
Python 3.7.2

I write the strings from my Python code into my database. My strings contain Latin and Cyrillic characters, so in the database I use 1-byte encoding koi8-r. The miracle is that my strings without distortion are written to the database, although utf8 and koi8r have completely different sequence of characters (for example, as in ascii and utf8). Sometimes characters of other layouts appear in the text and then write errors appear.

Therefore, the questions appear:
1. Who converts strings: the database or the aiomysql library, that I use to write to the database.
2. How quickly in Python / MariaDB to remove non-koi8-r characters to avoid errors.

Thank you in advance for participating in the conversation.

Perhaps, there are databases that support an "economical" (for my case) multibyte encoding, which stores the Latin and Cyrillic characters in the first byte, and other layouts in other bytes?
Quote
#2
If I understood the code right, there happens an implicit encoding to utf8mb4, if no other default encoding has been set.
If I'm right, this means the encoding takes 4 byte for each character. This can be something for internal optimization of MySQL itself.

Where the encoding happens: https://github.com/aio-libs/aiomysql/blo...on.py#L426
DEFAULT_CHARSET from external dependency: https://github.com/PyMySQL/PyMySQL/blob/...ons.py#L91

If you have a str, it's already encoded internally with utf8.
If your input was made with a koi8-r encoding, somewhere must happen a conversion.
For example if you enter form data on a web page, you should receive the parameters as raw bytes.
Then they need to be decoded, to be represented as str.

If the query is a str, then it is automatically encoded to utf8mb4, if no other encoding has been set somewhere.
My code examples are always for Python >=3.6.0
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  sqlite3 database does not save data across restarting the program SheeppOSU 1 163 Jul-24-2020, 05:53 AM
Last Post: SheeppOSU
  writing data to a csv-file apollo 1 146 Jul-03-2020, 02:28 PM
Last Post: DeaD_EyE
  Importing data from a text file into an SQLite database with Python macieju1974 7 344 Jun-29-2020, 08:51 PM
Last Post: buran
  Encoding audio data TheHacker707 0 235 Mar-28-2020, 08:04 PM
Last Post: TheHacker707
  Reading blob data from database by python and store it in .zip format Adityasi 2 712 Nov-18-2019, 05:22 PM
Last Post: ibreeden
  python openpyxl writing data Bikram 2 501 Oct-17-2019, 03:33 PM
Last Post: Bikram
  How to import data from database to excel nick123 1 775 Oct-09-2019, 04:39 PM
Last Post: sm51251
  Writing Data to CSV abhaydd 2 583 Aug-09-2019, 01:08 AM
Last Post: DeaD_EyE
  Want a list utf8 formatted but bytestrings found nikos 28 2,858 Feb-18-2019, 08:26 AM
Last Post: nikos
  Help with Code (Writing Data File) caroline_d_124 3 758 Jan-06-2019, 09:17 PM
Last Post: caroline_d_124

Forum Jump:


Users browsing this thread: 1 Guest(s)