Python3でZIP圧縮する場合の文字化け対策
結論
頼む!UTF8がわかるアーカイバソフト使ってくれ!!
ピンズドなエントリ。やはり人類はエクスプローラーによるZIP圧縮や解凍に困っていた。Windows7でUTF8がわからない場合に辛い。パッチがMSから公開されているが社内のセキュリティポリシーがどうだのかんなので、手を出せないという。Windows10ならUTF8がわかるようになっている。
ASCII文字でエンコード出来ない文字列があった瞬間に、強制的にUTF8でエンコードしている。いやね、そりゃそうなんだよ。全世界で使うんだから。
PythonのZipファイルエンコードの仕様をモンキーパッチを当てて逃げるというやり方しかないのが、Pythonで日本語ファイルを含むZipファイルを作る時の辛み。
Pyodbcで共有フォルダのMDBにアクセス
Dockerのnginx-proxyでSSL化対応
何番煎じかわかりませんが。あっさり出来たのでメモ。
nginx-proxy 側の docker-compose.yaml
version: '3' services: rg-proxy: image: jwilder/nginx-proxy:latest container_name: rg-proxy privileged: true ports: - "80:80" - "443:443" volumes: - ./certs:/etc/nginx/certs:ro - ./vhost:/etc/nginx/vhost.d - /var/run/docker.sock:/tmp/docker.sock:ro - ./html:/usr/share/nginx/html restart: always environment: TZ: Asia/Tokyo letsencrypt-nginx: image: jrcs/letsencrypt-nginx-proxy-companion container_name: letsencrypt-nginx privileged: true volumes: - ./certs:/etc/nginx/certs:rw - /var/run/docker.sock:/var/run/docker.sock:ro - ./vhost:/etc/nginx/vhost.d - ./html:/usr/share/nginx/html environment: NGINX_PROXY_CONTAINER: rg-proxy restart: always networks: default: external: name: sample_network
ポイントは、Let's Encrypt側の環境変数「NGINX_PROXY_CONTAINER: rg-proxy」です。volumes_from の例が多かったですが、Ver3から非推奨になりました。ログを見たらこの環境変数を設定してコンテナ名称を入れないとダメというエラーが出たので、設定したら動きました。
IntegerFieldで「0」が入力エラーになる場合
validatorにDataRequiredを使っているせいです。InputRequiredに変更しましょう。