こんばんは。
今オンラインゲームを作っていて、その中で、チャットを作っています。
それで、文字コードの変換なしに、送信すると、文字化けが起きてしまいます。
そこで、文字コードの変換の仕方と、どの文字コードに変換すればいいのかを教えてほしいです。
サーバーはLinuxです
お願いします
文字コード変換について
Re: 文字コード変換について
iconvやnkfを使うのはいかがでしょうか。
参考:http://www.geocities.jp/sanpontze/web.html
参考:http://www.geocities.jp/sanpontze/web.html
Re: 文字コード変換について
DXライブラリにそんな機能があるかどうかは知りませんが、「DXライブラリ 文字コード変換」などで検索しても
それらしい情報が見当たりません。
どなたかDXライブラリに詳しい人の回答を待つか、ご自分で調べて下さい。
それらしい情報が見当たりません。
どなたかDXライブラリに詳しい人の回答を待つか、ご自分で調べて下さい。
Re: 文字コード変換について
逆に聞きたいのですが、iconvやnkfを使いたくない理由が何かあるのでしょうか?
自前で文字コード変換をしようとすると結構大変です。
それ以前に、現在どのように文字列の送受信を行っているのかがわからないので、
本当に文字コード変換で解決するのかどうかも分かりません。
自前で文字コード変換をしようとすると結構大変です。
それ以前に、現在どのように文字列の送受信を行っているのかがわからないので、
本当に文字コード変換で解決するのかどうかも分かりません。
Advanced Supporting Developer
無理やりこじつけ(ぉ
無理やりこじつけ(ぉ
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 文字コード変換について
文字コードの変換をクライアントであるDXライブラリ側で行う必要があるのでしょうか?
Linuxサーバー側を修正した方が良いような。[補足]ソケット通信なら文字コード変換のプログラムを書かない限り自動変換されてないと思います。
asdさんの言うとおり本当の文字化けではなく、送受信の失敗の可能性もあります。
[追記]
前の質問を放置しないでくださいね。 → http://dixq.net/forum/viewtopic.php?f=3&t=9601
解決したら解決マーク、疑問が残るなら補足質問をしてください。
Linuxサーバー側を修正した方が良いような。[補足]ソケット通信なら文字コード変換のプログラムを書かない限り自動変換されてないと思います。
asdさんの言うとおり本当の文字化けではなく、送受信の失敗の可能性もあります。
[追記]
前の質問を放置しないでくださいね。 → http://dixq.net/forum/viewtopic.php?f=3&t=9601
解決したら解決マーク、疑問が残るなら補足質問をしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 文字コード変換について
チャットのプロトコルとして,文字コードはどのように規定していますか。
特定の文字コードに変換された物を送信するのか,送信側が文字コードを指定してその文字コードで送るのか。
規定していなかったのであれば,規定する必要があります。
# 各クライアントがそれぞれバラバラに送れば,文字化けするのは当然なので。
個人的には,プロトコルに文字コードを規定してしまって,その文字コードになるようにクライアント側が変換して送信するのがよいと思っています。
# 文字コードを送信側が指定する場合でもサーバー側がサーバーで保持する文字コードに変換することになるため。
そして,それはクライアントに対して送信される文字コードをそのまま使うのがよいと思います。
特定の文字コードに変換された物を送信するのか,送信側が文字コードを指定してその文字コードで送るのか。
規定していなかったのであれば,規定する必要があります。
# 各クライアントがそれぞれバラバラに送れば,文字化けするのは当然なので。
個人的には,プロトコルに文字コードを規定してしまって,その文字コードになるようにクライアント側が変換して送信するのがよいと思っています。
# 文字コードを送信側が指定する場合でもサーバー側がサーバーで保持する文字コードに変換することになるため。
そして,それはクライアントに対して送信される文字コードをそのまま使うのがよいと思います。