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

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

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

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2431閲覧

チャットアプリで日本語が文字化けしてしまう

mzis

総合スコア9

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/09/24 09:32

編集2018/09/25 12:17

現在、PythonとFlaskを用いて以下のサイトを参考でチャットアプリを作成しているのですが
日本語でチャットを行うと、文字化けを起こしてしまいます。

おそらく、エンコードをしないといけないのですが、コード内でどの部分を書き換えなければいけないのかわかりません。
どうか、ご教示をお願いします。

参考コード:

main.py

python

1from flask import Flask, render_template 2from flask_socketio import SocketIO 3 4app = Flask(__name__) 5app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#' 6socketio = SocketIO(app) 7 8@app.route('/') 9def sessions(): 10 return render_template('session.html') 11 12def messageReceived(methods=['GET', 'POST']): 13 print('message was received!!!') 14 15@socketio.on('my event') 16def handle_my_custom_event(json, methods=['GET', 'POST']): 17 print('received my event: ' + str(json)) 18 socketio.emit('my response', json, callback=messageReceived) 19 20if __name__ == '__main__': 21 socketio.run(app, debug=True) 22

session.html

html

1<!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <title>Flask_Chat_App</title> 5 </head> 6 <body> 7 8 <h3 style='color: #ccc;font-size: 30px;'>No message yet..</h3> 9 <div class="message_holder"></div> 10 11 <form action="" method="POST"> 12 <input type="text" class="username" placeholder="User Name"/> 13 <input type="text" class="message" placeholder="Messages"/> 14 <input type="submit"/> 15 </form> 16 17 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 18 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 19 <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.min.js"></script> 20 <script type="text/javascript"> 21 var socket = io.connect('http://' + document.domain + ':' + location.port); 22 socket.on( 'connect', function() { 23 socket.emit( 'my event', { 24 data: 'User Connected' 25 } ) 26 var form = $( 'form' ).on( 'submit', function( e ) { 27 e.preventDefault() 28 let user_name = $( 'input.username' ).val() 29 let user_input = $( 'input.message' ).val() 30 socket.emit( 'my event', { 31 user_name : user_name, 32 message : user_input 33 } ) 34 $( 'input.message' ).val( '' ).focus() 35 } ) 36 } ) 37 socket.on( 'my response', function( msg ) { 38 console.log( msg ) 39 if( typeof msg.user_name !== 'undefined' ) { 40 $( 'h3' ).remove() 41 $( 'div.message_holder' ).append( '<div><b style="color: #000">'+msg.user_name+'</b> '+msg.message+'</div>' ) 42 } 43 }) 44 </script> 45 46 </body> 47 </html>

参考URL:https://codeburst.io/building-your-first-chat-application-using-flask-in-7-minutes-f98de4adfa5d

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました!

escape,unescapeを使えばよかったです。

投稿2018/09/24 10:25

mzis

総合スコア9

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

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

x_x

2018/09/26 01:41

どの部分に使ったかのかを書いてもらってもいいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問