Blobstoreにアップロードする際に、日本語の入力データが文字化けてしまう

284 views
Skip to first unread message

ogi

unread,
Oct 18, 2010, 7:56:57 AM10/18/10
to Google-App-Engine-Japan
こんにちわ。ogiといいます。

表題の件につきまして、質問させて下さい。

今、Blobstoreにファイルをアップロードしようとしております。
その際に、name(formから)も一緒にPostしようとしています。

ですが、nameに日本語を入力した場合、1Byte削られてしまうのか、
文字化けしてしまいます。

※ローカル環境では、文字化けしません。


環境ですが、GAE/PythonでKayフレームワークを使用しております。

こちら、回避方法等ございますでしょうか。


[HTML]
(抜粋)
<form action="{{ upload_url }}" method="POST" enctype="multipart/form-
data">
<input type="file" name="file">
<input type="text" name="name">
<input type="submit">
</form>


[views]
(抜粋)
def index(request):
upload_url = blobstore.create_upload_url(url_for('uploader/
upload'))
return render_to_response('uploader/index.html', {'upload_url':
upload_url})

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
# ここで文字化けてしまう。1byte削られている?
logging.debug(self.request.values.get('name'))
return Response(None, headers={'Location': url_for('uploader/
index')}, status=302)

Takashi Matsuo

unread,
Oct 19, 2010, 8:30:27 PM10/19/10
to google-app-...@googlegroups.com
Google 松尾です。

こちらでも再現できています。webapp を使用しても同様ですね。
issue tracker に登録して修正する必要がありそうです。

少しお待ちください。

> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
Takashi Matsuo
Developer Relations
Developer Advocate for Google App Engine/iGoogle
Google Japan, Inc.

Yuta OGIHARA

unread,
Oct 19, 2010, 8:50:47 PM10/19/10
to google-app-...@googlegroups.com
Google 松尾さん

お世話なっております。ogiです。


下記、ご返答有り難うございます。
よろしくお願い致します。

Takashi Matsuo

unread,
Oct 20, 2010, 2:40:59 AM10/20/10
to google-app-...@googlegroups.com
Google 松尾です。

Issue Tracker では

http://code.google.com/p/googleappengine/issues/detail?id=3761
http://code.google.com/p/googleappengine/issues/detail?id=3762

などが関連の issue ですが、微妙に現象が違いますね。(日本語をポストした時 quoted printable になっているわけではない)

App Engine チームには伝えてありますので、修正までしばらくお待ちください。

-- matsuo

Satoshi

unread,
Dec 1, 2010, 12:44:31 PM12/1/10
to Google-App-Engine-Japan
松尾さん、

life is beautifulの中島です。App Engine上でのプログラミング、楽しませていただいています。

私もこの問題に行き当たって、いろいろと回避策を考えたんですが、「英語の場合はエンコードせず、インターナショナルな文字が含まれていた場合だけ
base64でエンコードする」という現状の状況だと、リバースするのが現実的に不可能なので回避がとても難しいので困っています。

この問題ですが、

http://code.google.com/p/googleappengine/issues/detail?id=2749

にmergeされたようですが、PriorityがMidiumですね。日本語に限らず、Blobstoreをからめたインターナショナルなアプリを作
ろうとしたら、誰もが行き当たるバグなので、PriorityをHighに変更していただけると助かります。

中島

On 10月19日, 午後10:40, Takashi Matsuo <tmat...@google.com> wrote:
> Google 松尾です。
>
> Issue Tracker では
>
> http://code.google.com/p/googleappengine/issues/detail?id=3761http://code.google.com/p/googleappengine/issues/detail?id=3762
>
> などが関連の issue ですが、微妙に現象が違いますね。(日本語をポストした時 quoted printable になっているわけではない)
>
> App Engine チームには伝えてありますので、修正までしばらくお待ちください。
>
> -- matsuo
>
>
>
>
>
> On Wed, Oct 20, 2010 at 9:50 AM, Yuta OGIHARA <zsrv....@gmail.com> wrote:
> > Google 松尾さん
>
> > お世話なっております。ogiです。
>
> > 下記、ご返答有り難うございます。
> > よろしくお願い致します。
>
> > On 2010/10/20, at 9:30, Takashi Matsuo wrote:
>
> >> Google 松尾です。
>
> >> こちらでも再現できています。webapp を使用しても同様ですね。
> >> issue tracker に登録して修正する必要がありそうです。
>
> >> 少しお待ちください。
>

kojit

unread,
Dec 1, 2010, 9:34:33 PM12/1/10
to Google-App-Engine-Japan
たしろと申します。

私もこの問題で困ってたのですが、とりあえず、POSTする前に全部 base64でエンコードしてから送信するという方法で回避しています。確かに誰
しもハマると思われるので、早めに修正していただけると皆さん助かると思います。

On Dec 2, 2:44 am, Satoshi <satoshi.nakaj...@gmail.com> wrote:
> 松尾さん、
>
> life is beautifulの中島です。App Engine上でのプログラミング、楽しませていただいています。
>
> 私もこの問題に行き当たって、いろいろと回避策を考えたんですが、「英語の場合はエンコードせず、インターナショナルな文字が含まれていた場合だけ
> base64でエンコードする」という現状の状況だと、リバースするのが現実的に不可能なので回避がとても難しいので困っています。
>
> この問題ですが、
>
> http://code.google.com/p/googleappengine/issues/detail?id=2749
>
> にmergeされたようですが、PriorityがMidiumですね。日本語に限らず、Blobstoreをからめたインターナショナルなアプリを作
> ろうとしたら、誰もが行き当たるバグなので、PriorityをHighに変更していただけると助かります。
>
> 中島
>
> On 10月19日, 午後10:40, Takashi Matsuo <tmat...@google.com> wrote:
>
>
>
>
>
>
>
> > Google 松尾です。
>
> > Issue Tracker では
>
> >http://code.google.com/p/googleappengine/issues/detail?id=3761http://...

Takashi Matsuo

unread,
Jan 13, 2011, 4:09:18 AM1/13/11
to google-app-...@googlegroups.com
中島さん

Google 松尾です。

お返事おそくなり済みません。当該 issue のプライオリティーをあげました。また内部でも修正のための議論を継続しています。

現状のワークアラウンドとしては、たしろさんのおっしゃるようにクライアントサイドで全部 base64 でエンコードするのが現実的ですね。

ちなみに日本語が入っている場合は iso-2022-jp で decode すると Unicode 文字列が得られます。

-- matsuo

Reply all
Reply to author
Forward
0 new messages