「ユーザをアップロードする」でのトラブル

「ユーザをアップロードする」でのトラブル

- 充男 楠見 の投稿
返信数: 7

Windows Server 2016 Datacenter (azure上)  moodle 3.3.2 (Build: 20170911)

「ユーザをアップロードする」でCSVファイルのアップロードを行うと、「CSVファイルの読み込み中にエラーが発生しました: 無効なCSVファイルフォーマット - カラム数が一定ではありません!」というメッセージが出て止まります。

「このエラーに関する詳細情報」

をクリックすると

「error/moodle/csvloaderror 現在このページには内容がありません」となります。

文字コードはUTF-8、改行コードは CR+LFを使用しています。 

コーホートのアップロードはできます。また一人ずつの登録はできます。(1行のCSVはダメでした)

同じCSVファイルで、LINUX上の3.3.2 (Build: 20170911)や3.1.2 (Build: 20160912)では問題が起きません。

どなたか情報をご存知でしたらお教えいただければ幸いです。

楠見充男


評点平均: お役立ち度: ★★★★★★★ (1)
充男 楠見 への返信

Re: 「ユーザをアップロードする」でのトラブル

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

本投稿の添付ファイルを使った場合、ユーザを正常にアップロードできますでしょうか?

評点平均: お役立ち度: ★★★★★★★ (2)
Mitsuhiro Yoshida への返信

Re: 「ユーザをアップロードする」でのトラブル

- 充男 楠見 の投稿

吉田様、ありがとうございます。添付いただいたCSVファイルでのアップロードはできました。サーバー側の問題ではないことがはっきりしましたので、CSVファイルを精査してみます。自分のファイルとの違いは、漢字の有無、桁数、桁幅、改行コード、項目名(cohort1,city) ですので、一つひとつつぶしていきます。また報告します。楠見充男

評点平均: お役立ち度: ★★★★★★★ (1)
充男 楠見 への返信

Re: 「ユーザをアップロードする」でのトラブル

- 充男 楠見 の投稿

その後調べたところ、「サーバーがWindowsで、データに漢字があり、コードがUTF-8の時」に発生することがわかりました。データが英数であれば問題が起きません。

SHIFT-JISでアップロードはできますが、文字化けします。

LINUXサーバーでは起きません。

また、コーホートのアップロードは問題ありません。

「ユーザーをアップロードする」モジュールのバグと考えられますが、このような問題はどちらに相談すればよいのでしょうか?



添付 スクリーンショット 2017-09-19 10.52.25.png
添付 スクリーンショット 2017-09-19 10.52.52.png
評点平均: お役立ち度: ★★★★★★★ (1)
充男 楠見 への返信

Re: 「ユーザをアップロードする」でのトラブル

- 雄一 川口 の投稿

楠見 様、

若しかしたら既にご確認済かも知れませんが、話題には出てなかったので... 。

自分の場合は、moodle 3.2系列から3.3.1に上げるときに、MariaDB (MySQL) の文字コードで警告がありました。utf-8ではなくutf8mb4を使うべきだそうです (参照)。

LinuxとWindowsで、DBのホストは同じでしょうか。ご参考になれば。

評点平均: お役立ち度: ★★★★★★★ (3)
雄一 川口 への返信

解決しました。Re: 「ユーザをアップロードする」でのトラブル

- 充男 楠見 の投稿

解決しました。

川口様、貴重な情報ありがとうございます。

ニューマシンに、新規に3.3.2をインストールしたので、警告に気が付きませんでした。

LINUXは AWS上、Winodws (WS2016 datacenter)はAZURE上の仮想サーバーなので、DBは全く異なります。

サイト管理、サーバ、動作環境を見たら、下記チェックが表示されました。

「mysql_full_unicode_support [チェック]

このテストに不適合の場合、潜在的な問題が存在することを意味します。現在のMySQLまたはMariaDBの設定では「utf8」を使用しています。この文字セットは絵文字を含む4バイト文字をサポートしていません。これらの文字を使用した場合、結果としてレコードのアップデート時にエラーが発生してデータベースに送信されるデータが失われてしまいます。あなたの設定を「utf8mb4」に変更することをお考えください。詳細はドキュメンテーションをご覧ください。」

ドキュメンテーションは見つかりませんでしたが、サイト管理、言語設定   サイト全体のロケール を UTF8mb4に設定して、再起動することにより、正常に稼働するようになりました。

ありがとうございました。



評点平均: お役立ち度: ★★★★★★★ (1)
充男 楠見 への返信

Re: 「ユーザをアップロードする」でのトラブル

- Kuni Tone の投稿

Windows Server 2016 + AMP環境にMoodle 3.5をインストールした状態でも同様のエラーが発生しました。


ここにあるutf8mb4対応自体は正常に終了しましたがエラーは解消しません。


ふと思いついてプリファレンスの優先言語を英語に切り替えて実行すると成功しました。

英語環境でも日本語のユーザーの姓名は表示されるのでアップロードに支障はありません。


不思議な現象ですがご参考まで。

評点平均: お役立ち度: ★★★★★★★ (2)
Kuni Tone への返信

Re: 「ユーザをアップロードする」でのトラブル

- Kazu K の投稿

>ふと思いついてプリファレンスの優先言語を英語に切り替えて実行すると成功しました。

moodle 4.1+(Build:20221222)を使用しています。
Windows Server
IIS
MariaDB10.5.9
PHP8.0.3

が環境です。

まったく同じ症状を、同じ対策で解消できました。有益な情報ありがとうございました。

評点平均: お役立ち度: ★★★★★★★ (1)