I have the following query in MySQL workbench:
SELECT japanese
FROM my_table
where japanese = 'する' COLLATE utf8mb4_ja_0900_as_cs;
When I try to pass the same query through the mysql.connector it blows up:
sql_query = 'SELECT japanese FROM my_table WHERE japanese = %s COLLATE utf8mb4_ja_0900_as_cs LIMIT 1'
my_variable = (word_to_search,)
mycursor1.execute(sql_query,my_variable)
sql_excecuted = mycursor1.fetchall()
And I get the following error message:
mysql.connector.errors.ProgrammingError: 1253 (42000): COLLATION 'utf8mb4_ja_0900_as_cs' is not valid for CHARACTER SET 'utf8'
In the documentation it says to update your connector settings, and I tried this:
mydb = mysql.connector.connect(host = "localhost", user = 'root',pwrd='123',database ='app')
mydb.set_charset_collation('utf8mb4_ja_0900_as_cs')
And get this error message:
mysql.connector.errors.ProgrammingError: Character set 'utf8mb4_ja_0900_as_cs' unsupported.
I'm feeling I'm in a catch-22 situation, there have been other issues with this program that have driven me to use the utf-8
character set. At the end of the day I'm reading a .txt
file and creating an html
document and am open to any character set that will allow the Japanese fonts to display correctly AND that I can search the db
properly with.
Can someone help me understand the correct character set to use in this situation please?
Thank you!