質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

18599閲覧

awsのs3にファイルアップロード日本語

unyounyo

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/04/16 10:47

awsのs3サービスにlamp環境のフォーム画面をつかってファイルのアップロードをしたいです。

やってみたところ、英数字名のテキストファイル(aaa.txt)であればアップロードが完了しますが、日本語名のファイル(あああ.txt)だとファイルがアップロードできてもs3サービスの管理画面で確認をすると、文字化けしたファイル名になってしまっております。(???.txtなど)

サーバの文字コードはLANG=Cで
ファイルの保存形式はUTF-8です、どこに考慮が足りないのかご教授よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

awscli (python-boto ライブラリ)の場合ですが、ファイル名のエンコーディングと locale を合わせないとダメだったと思います。

S3(AWS)へのバックアップで日本語ファイルがあるとエラーが出て処理が中止する (この事例では根本的な解決には至りませんでしたが)

ファイル名のエンコーディングが UTF-8 ならば、環境変数 LANG=ja_JP.UTF-8 をセットして、アップロード関数を呼び出すようにするといいのではないでしょうか。
クライアントによって、ファイル名のエンコーディングが SJIS とか不定ならば、PHP 側でエンコーディングを判定・変換するような処理が必要になるかもしれません。

投稿2016/04/17 02:49

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unyounyo

2016/04/21 08:37

@TaichiYanagiyaさん ありがとうございます!まさに環境変数をUTF-8にしたらうまくいきました!
guest

0

ファイルの保存形式はUTF-8です、

残念ながら、テキストファイルの内容がUTF-8であっても、ファイル名がUTF-8である保証はありません。
ファイルを作成したマシンは Windows ですね。Windows の場合、ファイル名は SJIS-win になります。
保存時に、ファイル名を適切にエンコードするか、またはマルチバイトを使用しないという仕様で設計すべきです。

windows -> linux
SJIS-win -> UTF-8 (文字化けする)

mac -> linux
UTF-8 -> UTF-8 (文字化けしない)

クライアントマシンの環境によって処理を変える必要あり。
当然、ダウンロードさせるような機能でも、同様の現象が発生します。

投稿2016/04/16 19:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unyounyo

2016/04/21 08:38

@Kosuke_Shibuyaさん 各環境下での文字コードの違いありがとうございます!理解につながりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問