今ナウな写真&画像

SJIS 【解決方法Q&A/疑問攻略/ブログ】


Q&A:SJISについて? 解決方法/評価

・MAMP(Apache,PHP,MySQL)の日本語、文字コード設定について教えてください。PHPを学ぼうとMAMPをインストールし、正常に動作していますが壁にぶち当たりました。。。全くの初心者ですが、どうかご教授願います!!MAC OS X 10.7.2 LIONで使用してます。まず、書籍、ネットで調べて実行した事は、Application/MAMP/bin/php/php5.3.6/conf/内にあるphp.iniのコードを下記のように変更しました。;default_charset = "iso-8859-1" → default_charset = "UTF-8" ;date.timezone = Europe/Berlin → date_timezone = Asia/Tokyo ;mbstring.language = Japanese → ;を削除;mbstring.internal_encoding = EUC-jp → mbstring.internal_encoding = UTF-8;mbstring.http_input = auto → ;を削除;mbstring.http_output = SJIS → mbstring.http_output = pass;mbstring.encoding_translation = off → ;を削除;mbstring.detect_order = auto → ;を削除;mbstring.substitute_character = none; → mbstring.substitute_character = none;次に、Application/Library/support-files/my-small.cnfをApplication/MAMP/db/mysql/にコピーし、名前をmy.cnfとし、[client]の後に default-character-set=utf8[mysqld]の後に character-set-server=utf8 と skip-character-set-client-handshake[mysql]の後に default-character-set=utf8を追加しました。phpMyadminでSHOW VARIABLES LIKE 'char%'で確認しましたが、ダメでした。 phpinfoのページで、Configuration File (php.ini) Pathが/Applications/MAMP/bin/php/php5.3.6/confLoaded Configuration Fileが/Applications/MAMP/bin/php/php5.3.6/conf/php.iniとなっていますが、うまく連動していないのでしょうか?ネットで調べましたが、各ファイルの位置はMAMP等のバージョンによって違うものなのでしょうか?また、MAMPの環境設定においてMYSQLのポートを3306に変更しましたが、MAMPのスタートページは、ホスト localhostポート 8889ユーザ名 rootとなっています。この3306と8889は一致しなくていいのでしょうか?分からない事ばかりで申し訳ございませんが、何卒宜しくお願いします。

・素人からの質問ですので、そのものズバリの書式で教えていただけると助かります。URLの?以降のパラメータを下記のようなフォームに自動で入力したいと思います。例えばhttp://homepage.com/net/index.html?a=12345&b=respect&c=45678などでアクセスしたページに設置するメルマガ購読フォーム<form method="post" action="http://homepage.com/point/public/adddel_do.php" target="_blank"> <input type="hidden" name="mid" value="xxxx" /> <input type="hidden" name="fid" value="xxxx" /> <input type="hidden" name="charcode" value="sjis" /> <table> <tr> <td>メールアドレス<font color="red">(必須)</font></td> <td><input type="text" name="d[0]" value="" /></td> </tr> <tr> <td>名前</td> <td><input type="text" name="d[1]" value="" /></td> </tr> <tr> <td>紹介コード1</td> <td><input type="text" name="d[3]" value="" /></td> </tr> <tr> <td>紹介コード2<font color="red">(必須)</font></td> <td><input type="text" name="d[4]" value="" /></td> </tr> <tr> <td>紹介コード3<font color="red">(必須)</font></td> <td><input type="text" name="d[5]" value="" /></td> </tr> </table> <input type="submit" name="submit" value=" 登録 " /></form>の紹介コード1,2,3にそれぞれ12345,respect,45678などと入力したいと思います。フォーム内のd[3]等はシステムからの指定のため変更できませんのでURLの?以降は?d[3]=12345&d[4]=respect&d[5]=45678で可能であればそのままにしたいです。※htmlページそのものはshiftjisで作成予定です。javascriptでhtmlページに貼り付けて作動するような形式を望んでいます。さらに可能であれば三ヶ月程度有効なクッキーですとさらに嬉しいです。色々なサンプルスクリプトを拾って試そうとするのですが、変数の指定でつまづき、特にフォーム内に代入する書式はチンプンカンプンです。どうか宜しくご教示願います。

・PHPにて半角英数を全角に変える質問です$word = "おはよーw";という文字列を$word = mb_ereg_replace('w','ワラ', $word);に変えたいのですが、バイト数が違うため使えないので。まずは半角のwを全角に変えようと、mb_convert_kana()関数を使ったのですが。なぜだか全ての文字列が文字化けを起こし、この作戦も失敗しました。いったいどうすれば、半角の「w」を全角カナの「ワラ」に変えられるでしょうか?文字コードはSJISです。

・platexについて質問です。現在windowsでバッチファイルを書いてTeXのコンパイルを2回行うようにしています。しかし、1回目でエラーが起こっても2回目が行われてしまいます。もし1回目でエラーが起こったら2回目は実行しないようにしたいのですが、どうやってもできません。どなたかご教授してください。ちなみに今は、もし1回目のコンパイル後にdviファイルが生成されなかったら2回目は実行しないようにしてありますが、エラーが起きてもdviファイルが生成されてしまい、2回目も実行されてしまいます。pTeXのバージョンはpTeX 3.1415926-p3.1.11 (sjis) (Web2C 2010) です。

・PHP、HTML、Mysqlの文字エンコードについてPHPファイルのエンコードがHTMLのエンコードになるようにするのですよねまたMySQLのエンコードも同じくするのですよねたとえばsjisの場合はPHPファイル(sjis),html(sjis),mysql(ujis)のようにもし異なった場合とかの対象方はあるのでしょうか?

・初めて質問しますphpからSQLのセレクト結果をCSV形式にダウンロードしようとしています。CSVファイルを開いたら結果が字化けしてしまいます。自分でも調べてみたのですが、原因が判りません。ご回答、お願いします。<?php//POSTで変数が渡されています。 header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=test.csv"); $host = "サーバー名"; $user = "ユーザーID"; $pass ="パスワード"; $mydb = "データベース名"; // SQL文if(@$A=="" && $B==""){ //条件1 $sql= 'SELECT 列1, 列2,'; $sql.=' 列3, 列4,'; $sql.=' 列5, 列6'; $sql.=' FROM テーブル名1 INNER JOIN テーブル名2'; $sql.=' ON テーブル名.ID = テーブル名.ID'; $sql.=' WHERE Kye="'.$C.'"'; $sql.=' ORDER BY テーブル名1.ID DESC '; }else{ //条件2 $sql= 'SELECT 列1, 列2,'; $sql.=' 列3, 列4,'; $sql.=' 列5, 列6'; $sql.=' FROM テーブル名1 INNER JOIN テーブル名2'; $sql.=' ON テーブル名.ID = テーブル名.ID'; $sql.=' WHERE ID >='.$A.' AND ID <='.$B.' '; $sql.='ORDER BY テーブル名1.ID DESC '; } //データベースに接続$db= mysql_connect($host,$user,$pass);mysql_query("set names utf-8", $db); //データベースセレクトmysql_select_db($mydb,$db);//クエリ $rs = mysql_query($sql,$db);for($i=0; $i<mysql_num_fields($rs); $i++){ print(mb_convert_encoding(mysql_field_name($rs,$i),"SJIS-WIN").",");}print("\¥n");for($j=0 ;$j<mysql_num_rows($rs); $j++) { for($k=0; $k<mysql_num_fields($rs); $k++) { $str=mysql_result($rs,$j,$k); print(mb_convert_encoding($str,"SJIS-WIN").","); } print("\¥n");}mysql_close($db);?>現在、xamppを使用しており、データベースはUTF-8で設定になっています。

・mysqlで日本語文字コード入力の環境設定をしたいのですが、あるDVDを見ながら勉強させていただいているのですが、メモ帳からコンピューター/ローカルC/XAMPP/mysql/binフォルダ/すべてのファイルを開くからmy.cnfかmyを選択してその中のmysqldのport付近にあるcharacter-set-server = latin1のlatin 1を消してsjisに書き換え次にcollation-server = latin1_general_ciの頭に#をつけて改行し最後にskip-character-set-client-handshakeと打ち込むような説明をなさっていうのですが、まず、my.cnfかmyのフォルダが無くて困っています。my.iniというフォルダがあったのですが、上の2行コードはありません。どなたか教えてください、また別の方法でかまいません。よろしくおねがいします。OSはvista basic 32bitです。

・【大至急!!】 ディズニーランドへのアクセスについて 1月19日にディズニーランドに行くのですが、電車の乗り換えなどについて不安があるので質問させていただきます。赤塚駅から出発し、取手→新松戸→舞浜 という経路で行きます。(下記を参考に)http://transit.loco.mobile.yahoo.co.jp/p/transit/search/result?from=%90%D4%92%CB&to=%95%91%95l&via=%8E%E6%8E%E8&flat=&flon=&tlat=&tlon=&d=20120119&t=0915&ex=1&al=1&hb=1&lb=1&sr=1&shin=1&type=4&ws=1&s=0&flatlon=&tlatlon=&ei=sjis&mtf=5そこで質問なんですが、切符は乗り換えごとに買うのでしょうか?それとも、赤塚~舞浜までの切符を買えるのでしょうか?(駅の窓口などで)どちらの方法だと片道1890円で乗れるのですかね?大至急回答よろしくお願いします。

・hpux10.20に、日本語を表示させたく、 ja_JP.SJISを組み込みたいのですが、 どのように設定すれば、いいのでしょうか?set LANG=ja_JP.SJIS とか export LANG=ja_JP.SJIS とか試みましたが、、、ダメでした。 locale で見てみると、 LANG=ja_JP.SJIS と変更されているのですが、、 教えて下さい。

・PHPについて質問です。スケジュール帳なんですが、1、入力画面(新規&編集)2、完了画面を作成しています。2、完了画面にてテキストファイルを作成しています。で、その作成したデータを入力画面(編集時)にて表示させていのですが・・・どのようにデータをひっぱればよいかわかりません。ご教授いただければと思います。PHPの初心者ですがよろしくお願いします。<ソース><?php //action_idの設定 if(!isset($_POST['action_id'])){ regist(); }else if($_POST['action_id'] == 'regist'){ regist(); }else if($_POST['action_id'] == 'fin'){ fin(); } //入力画面時の動作 function regist(){ //表示 $smarty->display('s_regist.tpl'); } //完了画面の動作 function fin(){ //確認画面からのリクエスト値をセットする $smarty->assign('title', $_POST['title']); $smarty->assign('year', $_POST['year']); $smarty->assign('month', $_POST['month']); $smarty->assign('day', $_POST['day']); $smarty->assign('name', $_POST['name']); $smarty->assign('memo', $_POST['memo']); //表示 $smarty->display('s_fin.tpl'); //テキストファイルに出力する $abc = 'title,'; $abc .= 'year,'; $abc .= 'month,'; $abc .= 'day,'; $abc .= 'name,'; $abc .= "memo\r\¥n"; $abc .= $_POST['title'].','; $abc .= $_POST['year'].','; $abc .= $_POST['month'].','; $abc .= $_POST['day'].','; $abc .= $_POST['name'].','; $abc .= $_POST['memo']."\r\¥n"; $abc = mb_convert_encoding($abc, "sjis-win", "UTF-8"); //年月をセットする $zzz = $_POST['year'].$_POST['month'].$_POST['day'] for( $i = 1; $i<= 99; $i++ ){ $file_name = $zzz.'_'.sprintf('%02d', $i).'.txt'; //ファイルが存在するかを調べる if (file_exists($file_name)) { continue; } break; } $fp = fopen($file_name, 'w');//print_r($file_name); fwrite($fp, $abc); fclose($fp); }?>

●気になる商品を検索

mbstring.httpmbstring.internalMAC OS X 10.7.2 LIONmbstring.internal_encodingmbstring.encodingmbstring.languagembstring.http_outputmbstring.detectiso-8859-1"date.timezoneUTF-8"php5.3.6php.inidefault_charsetmbstring.encoding_translationSJIS評価・MAMPmbstring.http_inputmbstring.detect_orderQ&A

●気になる話題を検索