We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
l3tnun/epgstation:v2.1.4-alpine
2.1.4
14.16.0
6.14.11
mirakc/mirakc:master-alpine
mariadb:10
mirakc + MariaDB(mysql)で運用している環境のみで発生する問題かもしれませんが、番組情報の更新を完了できずEPGUpdaterがエラーを繰り返します。
[2021-03-21T15:23:41.193] [INFO] system - start update channel [2021-03-21T15:23:42.117] [INFO] system - done update channel [2021-03-21T15:23:42.119] [INFO] system - get programs [2021-03-21T15:23:42.732] [INFO] system - done get programs [2021-03-21T15:23:42.733] [INFO] system - start update programs [2021-03-21T15:24:10.731] [ERROR] system - update programs error ...
どうやら mirakc /api/programs が返すUTF-8の4バイト文字を含むデータをDBにINSERTする際に、MariaDB側が以下のようなエラーを出しているようでした。
code: 'ER_TRUNCATED_WRONG_VALUE_FOR_FIELD', errno: 1366, sqlMessage: "Incorrect string value: '\\xF0\\xA0\\xAE\\xB7\\xE7\\x94...' for column `epgstation`.`program`.`name` at row 1",
調べてみるとエラーを起こしている番組は以下で、「𠮷」の字が4バイト文字に該当します(ちなみにMirakurunでの当該文字はゲタ〓になっています)。
{ "id": 40018107082, "eventId": 7082, "serviceId": 181, "transportStreamId": 16593, "networkId": 4, "startAt": 1616860800000, "duration": 3600000, "isFree": true, "name": "KATSU -𠮷田克幸の遺したい言葉-", "description": "ファッションブランド「PORTER CLASSIC」を主宰する𠮷田克幸が日本の伝統文化「刺し子」を後世に残すため創作に挑む姿と言葉を紡ぐ。\n\n", ...
MariaDBの設定は4バイト文字を受け付けるように utf8mb4 に設定してあり、mysqlコマンドから直接流したINSERTは問題なく通りました。
utf8mb4
mysql> show variables like "chara%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> INSERT INTO `program`(`id`, `updateTime`, `channelId`, `eventId`, `serviceId`, `networkId`, `startAt`, `endAt`, `startHour`, `week`, `duration`, `isFree`, `name`, `halfWidthName`, `shortName`, `description`, `halfWidthDescription`, `extended`, `halfWidthExtended`, `genre1`, `subGenre1`, `genre2`, `subGenre2`, `genre3`, `subGenre3`, `channelType`, `channel`, `videoType`, `videoResolution`, `videoStreamContent`, `videoComponentType`, `audioSamplingRate`, `audioComponentType`) VALUES (40018107082, 1616321712785, 400181, 7082, 181, 4, 1616860800000, 1616864400000, 1, 0, 3600000, 1, 'KATSU -𠮷田克幸の遺したい言葉-', 'KATSU -𠮷田克幸の遺したい言葉-', 'KATSU -𠮷田克幸の遺したい言葉-', 'ファッションブランド「PORTER CLASSIC」を主宰する𠮷田克幸が日本の伝統文化「刺し子」を後世に残すため創作に挑む姿と言葉を紡ぐ。\\n\\n', 'ファッションブランド「PORTER CLASSIC」を主宰する𠮷田克幸が日本の伝統文化「刺し子」を後世に残すため創作に挑む姿と言葉を紡ぐ。\\n\\n', NULL, NULL, 2, 1, NULL, NULL, NULL, NULL, 'BS', 'BS13_1', 'mpeg2', '1080i', 1, 179, 48000, 3); Query OK, 1 row affected (0.00 sec)
Web検索してみると以下のような情報がありました。 typeORM + mySQL で絵文字 🚀😀🇹🇭 が入らない問題 🤔
mySQLデータベースはutf8mb4で作っているのにTypeORMを使うと絵文字が入らない。という問題。 typeormのcreateConnectionをするとcharsetに関係なくcharset=UTF8_GENERAL_CIになってしまうため、どこかで設定する必要があります。
mySQLデータベースはutf8mb4で作っているのにTypeORMを使うと絵文字が入らない。という問題。
typeormのcreateConnectionをするとcharsetに関係なくcharset=UTF8_GENERAL_CIになってしまうため、どこかで設定する必要があります。
生半可な知識ですが ormconfig.js に ormConfig.charset = 'utf8mb4'; を追記しましたところ、番組情報の更新が行われ正常に稼働しているように思われたため、そのまま運用しています。
ormConfig.charset = 'utf8mb4';
限られた環境でのみ発生する、また設定依存の現象でEPGStation側の問題ではないのかもしれませんが、以上ご報告させていただきました。
The text was updated successfully, but these errors were encountered:
config.yml で mysql 接続時の文字コードを指定できるように変更 #435
f577d5c
報告ありがとうございます。 config.yml の mysql の設定で文字コードが設定できると良さそうでしたので、 最新の master にて指定できるようになりました。 ぜひご活用ください。
https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md#mysql
charset が追加されました。
charset
Sorry, something went wrong.
ご対応ありがとうございました! config.ymlにて設定し、これからも活用させていただきます。
No branches or pull requests
環境
l3tnun/epgstation:v2.1.4-alpine
2.1.4
14.16.0
6.14.11
mirakc/mirakc:master-alpine
mariadb:10
Issue
mirakc + MariaDB(mysql)で運用している環境のみで発生する問題かもしれませんが、番組情報の更新を完了できずEPGUpdaterがエラーを繰り返します。
どうやら mirakc /api/programs が返すUTF-8の4バイト文字を含むデータをDBにINSERTする際に、MariaDB側が以下のようなエラーを出しているようでした。
調べてみるとエラーを起こしている番組は以下で、「𠮷」の字が4バイト文字に該当します(ちなみにMirakurunでの当該文字はゲタ〓になっています)。
MariaDBの設定は4バイト文字を受け付けるように
utf8mb4
に設定してあり、mysqlコマンドから直接流したINSERTは問題なく通りました。Web検索してみると以下のような情報がありました。
typeORM + mySQL で絵文字 🚀😀🇹🇭 が入らない問題 🤔
生半可な知識ですが ormconfig.js に
ormConfig.charset = 'utf8mb4';
を追記しましたところ、番組情報の更新が行われ正常に稼働しているように思われたため、そのまま運用しています。限られた環境でのみ発生する、また設定依存の現象でEPGStation側の問題ではないのかもしれませんが、以上ご報告させていただきました。
The text was updated successfully, but these errors were encountered: