人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

サンプルにこのような二文が続けて入力されていました。SJISとEUCをそれぞれに変換しているようなのですが、実際どちらを使えば良いのでしょう。
function sjis2euc_for_Winodows($data){
if(!isset($data)){ return;}
if(preg_match("/Windows/", $_ENV["OS"])){
if(is_array($data)){
foreach($data as $key => $val){
$data[$key] = mb_convert_encoding( $key,"EUC-JP", "SJIS");
}
}else{
$data = mb_convert_encoding( $data,"EUC-JP", "SJIS");
}
return $data;
}
}

---ここで一度空白

function euc2sjis_for_Winodows($data){
if(!isset($data)){ return;}
if(preg_match("/Windows/", $_ENV["OS"])){
if(is_array($data)){
foreach($data as $key => $val){
$data[$key] = mb_convert_encoding( $key,"SJIS", "EUC-JP");
}
}else{
$data = mb_convert_encoding( $data,"SJIS", "EUC-JP");
}
return $data;
}
}

●質問者: K_Fuduki
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as EUC EUC-JP Key OS
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● くまっぷす
●27ポイント

これらはOSがWindowsだったら処理をする、そうでないときは何もしないで戻るという関数になっています。

mb_convert_encoding()

が文字コード変換の部分です。

http://php.s3.to/man/function.mb-convert-encoding.html

上の関数はSJIS->EUCへの変換、下の関数はEUC->SJISへの変換。

どちらを、というのは用途によります。

例えばUNIX(EUCを使うことが今のところ多い)で書かれたPHPソースコードをそのままWindowsに持ってきて使うとしてその出力をSJIS(Windowsの文書ではよく使われている)にしたいというような場合にEUC->SJISの変換をするのでしょうが…。

実際にどのように使われているか、他のところを見てみないと何とも言えません。


2 ● tadashi0805
●27ポイント

どちらを使うのは、入力データの文字コードがどちらで、どちらの変換結果を得たいか次第です。

用途、つまりどんなものを作りたいかです。


3 ● ohmix1
●27ポイント

sjis2euc_for_Winodows();

これは、Shift_JISコードをEUCコードに変換する関数。


euc2sjis_for_Winodows();

これは、EUCコードをShift_JISコードに変換する関数。


ただし、これらの関数はWinodowsの環境でのみ機能します。

つまりLinuxとかだと何もしない。


何を質問されているのかよく分かりませんが、

>実際どちらを使えば良いのでしょう。

必要があるときに使う....ということになりますが、以下は推測。


PHPでWebプログラムを作成しているのかな?

Windowsの文字コードはShift_JISなので、

HTML画面を作成するときにEUCコードで出力する必要があったり、

フォームからの入力がEUCの場合にShift_JISに変換してやる必要があります。

すべてShift_JISで入出力するなら必要な気もしますが...?


まずは、Shift_JISコードEUCコードについて調べてみてください。


4 ● wizemperor
●10ポイント

どのような用途で使うのかによると思います。

UNIX系サーバーでの運用を前提として使われる関数だと思います。

WindowsはShift-JISが使われ、UNIX等ではEUC-JPが普通ですが、日本語のWebページではShift-JISがよく使われます。

サーバーがUNIX系(Linux, FreeBSD等)でユーザーからの入力・ブラウザへの出力ページがShift-JISで書かれているような場合に文字コードを変換するためのものでしょう。

サーバー内のファイル等から得たデータを出力(表示)する際にはeuc2sjis_for_Winodowsで変換、ユーザーからの入力をサーバー内のファイル等に保存する場合にはsjis2euc_for_Winodowsで変換するためのものかと思います。


5 ● vector
●10ポイント

そのサンプルを持っているわけではないので、そのサンプル、またはどのようなときにこれを使いたいのかを書いていただけないと、正直答えようがありません。


やっているのはEUC-JPからShift_JISへの、Shift_JISからEUC-JPへの変換なので、環境に合わせて使えばいいと思います。

DBがEUC-JPだけど、WebはShift_JISで構成されているとき、DBからのデータを変換するにはEUC2SJIS_for_Windows($data)を使うといった感じです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ