Google
SSブログ

写真にオモチャの写真を取り込む(sakashushu の挿絵の作り方) [メモ]

01_img.jpg

写真に絵を取り込む(sakashushu の挿絵の作り方) で、

ブログの挿絵に使う写真の上にを乗せる、私のやり方を書きました。

昨日のエントリ(洗濯して中のスポンジがヨレた敷布団を無理やり直してみたよ) では、

写真の上にオモチャの写真を取り込んでみたものを挿絵に使ったので、どうやったかを今回も書いてみます。

※ 今回も超我流で、効率悪いことやってると思います。なので今回もツッコミ大歓迎!「そんなの気にせず読みたい」って方も含めて、写真に絵を・・・ の方を見てからの方がすんなり読めるかもしれません。

続きを読む


タグ:メモ Gimp 作業

写真に絵を取り込む(sakashushu の挿絵の作り方) [メモ]

01_img.jpg

私はブログの挿絵に、写真の上に絵を乗せたものをよく使います。

実際大したことはやってないんですが、「どうやってるの?」と聞かれることがあったもので

一応現時点での私のやり方を書いてみることにしました。

※ 記事にするほどの内容じゃありません。大したことやってないどころか、効率悪いことやってる場合もあると思うのでつっこみ大歓迎です! 

続きを読む


タグ:メモ 作業 Gimp

ボールペンの芯がもったいない(その2) [メモ]

06.jpg

 

以前書いたエントリ の続き的エントリ。

 

3色とか4色ボールペンは、1本しかボールペンを持たずに済んで、しかも持ち替えずに使えるのが大きなメリット。

以前のエントリ もそうでしたが今日書く内容も、そのメリットは諦めきった上で、単純に もったいない だけを追求したものです。

効率とか便利さを求める方は、読んでてイライラすると思いますので、万が一読み進められる場合はその辺をご承知おき下さい ^^;

続きを読む


nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:日記・雑感

ボールペンの芯がもったいない [メモ]

私はボールペンの芯がもったいない、「もったいない病」の人です。

前々から1本、何故か芯だけ余ってたやつがあったんですが、最近4色ペンが真ん中からボキっと折れてしまい、トータルで5つの芯があぶれたことになりました。

ボールペンの芯って、それぞれ微妙に長さや太さが違って、他のボールペン本体に入れても使えないことが多いんですよね。

「もったいない病」 の私は、何とかその芯たちを救いたくなります。

 o28_コメント入り.jpeg

続きを読む


.emacs(自宅のvista)(2010/7/14) [メモ]

; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

;; ----------------------------------------------
;; @ basic coding system(コーディング システム)

   ;; 日本語入力のための設定
   (set-keyboard-coding-system 'japanese-shift-jis)


;; -----------
;; @ basic IME

   ;; 標準IMEの設定
   (setq default-input-method "W32-IME")

   ;; IMEの初期化
   (w32-ime-initialize)

   ;; IME ON/OFF時のカーソルカラー
   (add-hook 'input-method-activate-hook

             (lambda() (set-cursor-color "green")))
   (add-hook 'input-method-inactivate-hook
             (lambda() (set-cursor-color "red")))

   ;; バッファ切り替え時にIME状態を引き継ぐ
   (setq w32-ime-buffer-switch-p nil)



;======================================================================
; cuaモード
;======================================================================
(setq cua-enable-cua-keys nil)
(cua-mode t)



;======================================================================
; 言語・文字コード関連の設定
;======================================================================
(when (equal emacs-major-version 21) (require 'un-define))

(set-language-environment "Japanese")
(set-terminal-coding-system 'sjis-dos)
;(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'sjis-dos)
(setq default-buffer-file-coding-system 'sjis-dos)

(prefer-coding-system 'sjis-dos)
(set-default-coding-systems 'sjis-dos)
(setq file-name-coding-system 'sjis-dos)


;======================================================================
; Anthy

;    CTRL-\で入力モード切替え
;======================================================================
;;;20100519 Saka Chg Start
;(load-library "anthy")
;(setq default-input-method "japanese-anthy")


; anthy.el のロードパスを追加
;(push "/usr/share/emacs/site-lisp/anthy/" load-path)

; anthy.el をロードする
;(load-library "leim-list")
;(load-library "anthy")

;; 修正とカスタマイズ


; emacs23 の場合レスポンスが遅くなる問題の修正
;(if (>= emacs-major-version 23)
;(setq anthy-accept-timeout 1))

; japanese-anthy をデフォルトの入力システムに設定
;(setq default-input-method "japanese-anthy")

; シフト+スペースで anthy モードへ移行 (デフォルトは Ctrl-\)

;(global-set-key (kbd "S-SPC") 'anthy-mode)

; 全角スペースを半角スペースに変更
;(setq anthy-wide-space " ")
;;;20100519 Saka Chg End

;;
;=======================================================================

;フレームサイズ・位置・色など
;=======================================================================
(setq initial-frame-alist
    (append (list
           '(foreground-color . "white")        ;; 文字色
           '(background-color . "black")        ;; 背景色

           '(border-color . "black")
           '(mouse-color . "white")
           '(cursor-color . "white")
           '(width . 160)                 ;; フレームの幅
           '(height . 48)                 ;; フレームの高さ

           '(top . 0)                     ;; Y 表示位置
           '(left . 0)                    ;; X 表示位置
           '(alpha . (80 60))             ;; 透明度
           )
        initial-frame-alist))

(setq default-frame-alist initial-frame-alist)

;; 20100531 Saka Add Start
;(set-frame-parameter nil 'fullscreen 'fullboth)  ;; ウインドウマネージャの枠もなくなる完全な最大化(--fullscreenオプションをつけた場合と同じ)
(set-frame-parameter nil 'fullscreen 'maximized)  ;; いわゆる右上の最大化するボタンを押しての最大化

;(set-frame-parameter nil 'fullscreen 'nil)       ;; 最大化してあった場合、元に戻す
;; 20100531 Saka Add End



;=======================================================================
;フォント
;=======================================================================

;(cond (window-system
;    (set-default-font "-*-fixed-medium-r-normal--14-*-*-*-*-*-*-*")
;       (progn
;         (set-face-font 'default
;                        "-shinonome-gothic-medium-r-normal--14-*-*-*-*-*-*-*")

;         (set-face-font 'bold
;                        "-shinonome-gothic-bold-r-normal--14-*-*-*-*-*-*-*")
;         (set-face-font 'italic
;                        "-shinonome-gothic-medium-i-normal--14-*-*-*-*-*-*-*")

;         (set-face-font 'bold-italic
;                        "-shinonome-gothic-bold-i-normal--14-*-*-*-*-*-*-*")
;       )))

;(add-to-list 'default-frame-alist '(font . "IPAゴシック-10"))

(set-default-font "Verdana-9")
(set-fontset-font (frame-parameter nil 'font)
                                    'japanese-jisx0208
                                    '("MS ゴシック" . "unicode-bmp"))

(set-default-font "MS ゴシック-10")


;; 20100613 Saka Add (ソースコードのカラー表示) Start
(if window-system
  (progn
    (set-face-foreground 'font-lock-comment-face "cyan")
    (set-face-foreground 'font-lock-string-face  "khaki1")

    (set-face-foreground 'font-lock-keyword-face "LawnGreen")
    (set-face-foreground 'font-lock-function-name-face "blue")
    (set-face-bold-p 'font-lock-function-name-face t)
    (set-face-foreground 'font-lock-variable-name-face "blue")

    (set-face-foreground 'font-lock-type-face "LightSeaGreen")
    (set-face-foreground 'font-lock-builtin-face "purple")
    (set-face-foreground 'font-lock-constant-face "black")

    (set-face-foreground 'font-lock-warning-face "blue")
    (set-face-bold-p 'font-lock-warning-face nil)))
;; 20100613 Saka Add (ソースコードのカラー表示) End


;=======================================================================

; Misc
;=======================================================================
(mouse-wheel-mode t)                         ;;ホイールマウス
(global-font-lock-mode t)                    ;;文字の色つけ
(setq line-number-mode t)                    ;;カーソルのある行番号を表示

(column-number-mode t)                       ;;カーソルのある列番号を表示
(auto-compression-mode t)                    ;;日本語infoの文字化け防止
(set-scroll-bar-mode 'right)                 ;;スクロールバーを右に表示
(global-set-key "\C-z" 'undo)                ;;UNDO

(setq frame-title-format                     ;;フレームのタイトル指定
    (concat "%b - emacs@" system-name))

;(display-time)                            ;;時計を表示
;(global-set-key "\C-h" 'backward-delete-char)            ;;Ctrl-Hでバックスペース

;(setq make-backup-files nil)                    ;;バックアップファイルを作成しない
;(setq visible-bell t)                        ;;警告音を消す
;(setq kill-whole-line t)                    ;;カーソルが行頭にある場合も行全体を削除
;(when (boundp 'show-trailing-whitespace) (setq-default show-trailing-whitespace t))    ;;行末のスペースを強調表示



;=======================================================================
; TAB幅の変更
;=======================================================================
;; 20100617 Saka Chg Start
(setq-default tab-width 4)

;(setq-default tab-width 4 indent-tabs-mode nil)  ;;ソフトタブを使用
(setq-default indent-tabs-mode nil)  ;;ソフトタブを使用

;(setq tab-width 4)
;;タブは2文字ごとに
;;追加 タブの設定は以下のようにしないとだめ
;(setq-default tab-stop-list
;  '(0 1 2 3 4 6 8 12 16 20))

;(setq indent-tabs-mode t)
;;; cc-modeの設定.好みでセミコロンを外してください.
;
;(add-hook 'c-mode-hook '(lambda ()
;                          (setq c-basic-offset 4)
;                          (setq tab-width 4)

;                                        ;      (setq c-auto-newline t)
;                          )
;          t
;          )
(setq-default tab-stop-list
  '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88))

;; 20100617 Saka Chg End


;=======================================================================
;バックアップファイルを一箇所に
;=======================================================================
(setq make-backup-files t)

(setq backup-directory-alist
  (cons (cons "\\.*$" (expand-file-name "~/.emacs.d/backup"))
    backup-directory-alist))


;=======================================================================

;コマンド
;=======================================================================
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)


;=======================================================================

;ホワイトスペースモード
;=======================================================================
(setq whitespace-style (quote
  ( spaces tabs newline space-mark tab-mark newline-mark)))


;; 20100614 Saka Add Start

;=======================================================================
;Emacsでコピーして外部アプリに貼り付け
;=======================================================================
;; クリップボードにコピー
(global-set-key "\M-w" 'clipboard-kill-ring-save)

;; 切り取ってクリップボードへ
(global-set-key "\C-w" 'clipboard-kill-region)
;; 20100614 Saka Add End


;=======================================================================
;COBOL-MODE
;=======================================================================

(setq load-path (cons "~/.emacs.d/cobol" load-path))
(setq auto-mode-alist (append auto-mode-alist
'(("\\.CAP$" . cobol-mode))))
(autoload 'cobol-mode "cobol-mode"
"Major mode for editing COBOL source files." t nil)



;=======================================================================
;折り返し表示ON/OFF
;=======================================================================
(setq-default truncate-lines t)
(setq-default truncate-partial-width-windows t)

(defun toggle-truncate-lines ()
  "折り返し表示をトグル動作します."
  (interactive)
  (if truncate-lines
      (setq truncate-lines nil)
    (setq truncate-lines t))
  (recenter))
(global-set-key "\C-c\C-l" 'toggle-truncate-lines) ; 折り返し表示ON/OFF

;; 20100609 Saka Add Start
;; 20100610 Saka Chg Start
;;; ウィンドウの右端で文字列を折り返さない
;;通常のウィンドウ用の設定
;(setq-default truncate-lines f)
;;ウィンドウを左右に分割したとき用の設定
;(setq-default truncate-partial-width-windows f)
;; 20100610 Saka Chg End

;; 20100609 Saka Add End


;=======================================================================
;指定行数にジャンプ
;=======================================================================
(global-set-key "\C-c\C-j" 'goto-line)



;=======================================================================
;;; Dired で Windows に関連付けられたファイルを起動する。
;=======================================================================
(defun uenox-dired-winstart ()

  "Type '\\[uenox-dired-winstart]': win-start the current line's file."
  (interactive)
  (if (eq major-mode 'dired-mode)
      (let ((fname (dired-get-filename)))
        (w32-shell-execute "open" fname)

        (message "win-started %s" fname))))
;;; dired のキー割り当て追加
(add-hook 'dired-mode-hook
          (lambda ()
            (define-key dired-mode-map "z" 'uenox-dired-winstart))) ;;; 関連付け



タグ:メモ Emacs

Emacs 疑問(随時編集) [メモ]



・編集(変更)行の色を指定する方法
未解決


・Emacsでソフトタブを使う方法
;;20100618 Add Start
変数indent-tabs-modeにnilを設定すれば良いようだ。
.emacs に下記を追加した。
(setq-default indent-tabs-mode nil)
タブストップの位置はtab-stop-listと呼ばれる変数に格納されているようである。
私は4バイト幅でのタブストップが好きなので、.emacs への追加は下記。
(setq-default tab-stop-list
  '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88))
;;20100618 Add End


・Windows上のEmacsで grep を使う方法
未解決
;;20100714 Add Start
gnupackで可能だった。
;;20100714 Add End



・ Windows上のEmacsでdiffを使う方法
未解決
;;20100714 Add Start
gnupack
可能だった。
;;20100714 Add End



・Windows上のEmacsで拡張子を Emacs に関連付けてダブルクリックで開いたり、ファイルを選択して右クリック→送るでEmacsに送ったりする際に、既にEmacsが起動していたら新規で Emacsを立ち上げず、起動しているEmacsで開く方法
;;20100618 Add Start
gnuserv というものを使うとできそう?
今後も要調査。
;;20100618 Add End
;;20100621 Add Start
http://d.hatena.ne.jp/gan2/20080131/1201782439
に、1つの Meadowで複数のファイルを開く方法について書かれており、

導入の手間は emacsclient の方が少ないけど、使い心地は gnuserv  の方がいい

とのことだが、取りあえず導入の手間が少ない方が良いので、emacsclient を試す。
今後も要調査。
;;20100621 Add End
;;20100622 Add Start
http://www.bookshelf.jp/texi/emacs-man/21-3/jp/faq_5.html
によると

Emacs 配布パッケージに付属する emacsclient を使えば既に起動している Emacs と通信してファイルを編集するように指示できます。そのために Emacs 側で設定をしておく必要があります。
emacsclient からの要求を受け付けるように Emacs で関数 server-start を実行します。コマンドラインから指定するには次の様にします。
emacs -f server-start

とのこと。

ってことは、emacsを最初に立ち上げることが前提になる。


多くのテキストエディタは、関連付けられた拡張子のファイルのダブルクリックや右クリックの「送る」で指定したら勝手に立ち上がるのが当たり前なので、その動きと同様にさせたい。


http://kgo.dtiblog.com/blog-entry-60.html


を参考に、emacsが立ち上がっているかを判断して、emacs立ち上げ後にemacsclientを立ち上げるバッチファイルを無理やり作ってみた。


@ECHO OFF

TASKLIST | FIND "emacs.exe" > NUL
IF NOT ERRORLEVEL 1 (
    REM プロセスが起動していた場合
    ECHO emacsは起動しています。
    C:\home\local\emacs-23.2-20100508\bin\emacsclient.exe %1
) ELSE (
    ECHO emacsが起動していません。
    C:\home\local\emacs-23.2-20100508\bin\runemacs.exe -f server-start
    REM Sleep時間をミリ秒で指定
    SET SLEEPTIME=3000
    ECHO WScript.sleep %SLEEPTIME% > C:\home\local\sleep.vbs
    REM sleep
    cscript.exe sleep.vbs > NUL
    C:\home\local\emacs-23.2-20100508\bin\emacsclient.exe %1
)

EXIT



起動していない場合にsleep云々を入れているのは、そうしないとemacsが立ち上がる前にemacsclientが実行され、落ちてしまうから。

最初は起動していない場合は
runemacs.exe -f server-start %1
としていたが、文字コードの関係からか、ファイル名に「~」等が含まれていると新規ファイルと認識されてしまって上手くいかなかった。

作成したバッチファイルを、望みの拡張子に関連付けし、ショートカットをSendToフォルダに入れて、一応は望みの動作になった。

もっとちゃんとしたスマートなやり方があるはずだが、取りあえずは上記で運用してみる。

;;20100622 Add End

;;20100723 Add Start

・Windows上のEmacsのdiredで、ファイル名やフォルダ名にいわゆる「だめ文字」を含む時に開けない


未解決
;;20100723 Add End

 


タグ:Emacs

Ubuntu + Emacs Snapshot で Cannot open load file, anthy [メモ]


Emacs23は見栄えが良いようなので、Ubuntu
9.10に導入を試みました。

アンチエイリアスの効いたGNU Emacsを使う

Synapticパッケージ・マネージャでemacs-snapshotを検索してインストール。emacs-snapshot、emacs-snapshot-bit-common emacs-snapshot-common emacs-snapshot-elの4つのパッケージをインストールする。


を参考に、Emacs Snapshotを入れてみた。

立ち上げると

File error: Cannot open load file,
anthy

とエラーが出た。

そこで、

Emacs で Anthy 日本語入力システムの設定
を参考に設定。

はじめに、Anthy と その Elisp インターフェースをインストールします。
$ sudo apt-get install anthy anthy-el

とあったので、Synapic パッケージ・マネージャを開いたところ、anthyはインストール済みだったのでanthy-elをインストール指定して適用した。

; anthy.el のロードパスを追加
(push "/usr/share/emacs/site-lisp/anthy/" load-path)

; anthy.el をロードする
(load-library "leim-list")
(load-library "anthy")

;; 修正とカスタマイズ

; emacs23 の場合レスポンスが遅くなる問題の修正
(if (>= emacs-major-version 23)
(setq anthy-accept-timeout 1))

; japanese-anthy をデフォルトの入力システムに設定
(setq default-input-method "japanese-anthy")

; シフト+スペースで anthy モードへ移行 (デフォルトは Ctrl-\)
(global-set-key (kbd "S-SPC") 'anthy-mode)

; 全角スペースを半角スペースに変更

(setq anthy-wide-space " ")

は、

.emacs.el (Emacs のデフォルトの設定ファイル) を編集


となっていたが、どこにあるか知らないことと、
.emacsもデフォルトの設定ファイルなのだろうということで、そっちに追加した。

すると、anthy のエラーは消えたが、以下の新たなエラーに変わった。。

File error: Cannot open load file, w3m-load

次回に続かせます。
2010/5/19 23:50 追記
続かせるつもりでしたが、自分で原因を作っていたことが分かったのでここに記載します。
以前にLispBoxと同様の動きを実現させるために、
https://forums.ubuntulinux.jp/viewtopic.php?id=3882
にあった内容を真似て、意味も分からず.emacsに以下の1行を追加していました。
  (require 'w3m-load)
コメントアウトしたらエラーは消えました。
LispBoxと同様の動きは変わってないっぽいので、取りあえずこのままとします。


Emacs Lisp メモ (随時編集) [メモ]

;;20100312 Add Start

LispBox→SLIMEの開始
  M-x
  slime

LispBox→SLIMEの終了
  M-x
  quit

  ;; ファイル操作
  C-x C-f  新規・既存ファイルを開く
  C-x C-s  バッファの内容をファイルに保存(save-buffer)
  
  ;; LispBoxでのコンパイル
  C-c C-k
  

;;20100312 Add End

;;20100615 Chg Start
;;20100404 Add Start
以降、
http://typewith.me/TVNIdVTFG8
にて継続
また、「Lisp 疑問」として
http://typewith.me/oyoJjz2T9l
を作成
;;20100404 Add End

※ 上記ページは TypeWithMe のものだが、

Oops! A server error occured. It's been logged.

Please email <support@lockergnome.com> if this persists.


   と表示されてしまう。

   Emacs 疑問 を作成

;;20100615 Chg End

;;20100616 Add Start

※ 上記のTypeWith.Meの障害は復旧したようだが、バックアップ体制が弱そうなので、やはりこちらをメインとして継続する。

  ;; 選択範囲の始点
  C-@
  ;; コピー
  選択範囲の終点で
  M-w
  ;; カット
  選択範囲の終点で
  C-w
  ;; ペースト
  C-y
  
  ;; アンドゥ(もとに戻す)
  C-x u
  または
  C-_
  
  ;; カーソル移動
  C-f    一文字次に進む
  C-b    一文字前に戻る
  M-f    一単語次に進む
  M-b    一単語前に戻る
  C-n    次の行に移動
  C-p    前の行に移動
  C-a    行頭に移動
  C-e    行末に移動
  M-a    文頭に移動
  M-e    文末に移動
  
  ;; バッファ操作
  C-x k    現在のバッファを閉じる(kill buffer)
  C-x C-b  バッファの一覧を表示
  C-x 1    表示するバッファを1つにする
  C-x 2    表示するバッファを2つに分割する
 
  ;; 改行などの検索
  C-s C-j  
  
  ;; 改行などの置換
  各置換コマンドで C-q C-j

  ;; grepの使い方
  http://www2.pf-x.net/~rafysta/memo/wiki.cgi?page=emacs%A4%C7grep
  http://www.math.s.chiba-u.ac.jp/~matsu/emacs/emacs22/grep.html#grep



  ※ Emacs 疑問(随時編集)を作成

;;20100616 Add End



mysql の文字化け対策 [メモ]


状況
  Windows環境で、インストールした mysql に作成したDB・テーブルの VARCHAR 列に日本語を INSERT し、SELECT した際に文字化けする。

ちょっと前に、Javaの講習を受けていて、Eclipse + mysql を使用していた。
(講習ではスクール用にカスタマイズされたXAMPPのインストーラを使用して環境構築)
その時は mysql 絡みでの文字化けは特に発生していなかった。

スクールのカスタマイズしたXAMPPのインストーラから見て取れる情報
  XAMPP(version 1.7.1)
  mysql(Ver 14.14 Distrib 5.1.33, for Win32 (ia32))


自分の環境で同様に開発作業をしていたが、mysql に作成したDB・テーブルの VARCHAR 列に日本語を INSERT し、SELECT した際に文字化けしてしまう。

色々と検索してみたところ、多様な情報が存在していた。

【1】mysql の文字コードの設定を調べる方法が2種類あって、下記の2つ
  ①  mysql> show variables like 'character_set%';
  ②  mysql> status

それぞれの結果は以下
①:
+--------------------------+----------------------------------------------+
| Variable_name            | Value                                        |
+--------------------------+----------------------------------------------+
| character_set_client     | latin1                                       |
| character_set_connection | latin1                                       |
| character_set_database   | latin1                                       |
| character_set_filesystem | binary                                       |
| character_set_results    | latin1                                       |
| character_set_server     | latin1                                       |
| character_set_system     | utf8                                         |
| character_sets_dir       | C:\Program Files\xampp\mysql\share\charsets\ |
+--------------------------+----------------------------------------------+
8 rows in set (0.00 sec)

②:
--------------
mysql  Ver 14.14 Distrib 5.1.41, for Win32 (ia32)

Connection id:          1
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.1.41 Source distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Client characterset:    latin1
Server characterset:    latin1
TCP port:               3306
Uptime:                 47 min 23 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 19  Flush tables: 1  Open tables: 0  Queries per second avg: 0.1
--------------


スクールのカスタマイズインストーラから入れた mysql では、上記の latin1 の部分が全て sjis であった。

で、mysql の文字コードの設定について検索してみたところ、


【2】設定ファイル my.ini とか my.cnf が存在し、それを編集して mysql を再起動すればよい。

とにかく設定ファイルに関しては様々なページがヒットしたが、mysql のバージョンもOS環境も様々のため、情報に一貫性が無かった。
それぞれ書かれた内容に沿って試してみたところ、私の環境と一致するものと一致しないものがあった。

試してみた結果から現時点で私が推測しているのは、
・mysql の設定ファイルは、基本的にLinux環境では /etc/my.cnf であり、Windows環境では インストールフォルダ\xampp\mysql\bin\my.ini である。
・単なる設定ファイルなので、環境によっては Windows環境でも my.cnf の設定を反映させることも可能である。
・Windowsマシン上の mysql 5.1.41 では、サーバ、クライアントが物理的に1つのマシンに同居している場合、サーバーの起動とクライアントの起動で設定ファイルからの反映に関してのデフォルトのルールが異なり、サーバは my.ini を反映するが、クライアントは特に設定ファイルを反映しない。


いくつも疑問符は残るが、上記の推測を元に下記の流れで文字化け対策とした。

【対策1】インストールフォルダ\xampp\mysql\bin\my.ini の中の [mysqld] の部分に下記を追加
    default-character-set=sjis

  ※いろんなページで、さらにこの下に
    skip-character-set-client-handshake
    を足したと書かれていたが、ここの忠告に従って書き足さないこととした。

skip-character-set-client-handshake、SET NAMES で文字化けなどの問題を解決してしまうと、SQLインジェクションの脆弱性を生じます。
これらのオプションやコマンドは、文字コードの設定を*無理やり*変えてしまうので、問題の表層だけ解決しまう可能性があります。
文字化け(??になったり、無用な¥が挿入されたり)、SQLインジェクション、がなぜ発生するかというと「サーバ/データベース/クライアント」の文字コードの設定が一致していないからです。
シンプルに解決するには、これらを完全に一致させればよいわけです。



対策1により、サーバーのデフォルトの文字コードが sjis になったとイメージしている。

この時点で、①の結果が下記に変わった
①:
+--------------------------+----------------------------------------------+
| Variable_name            | Value                                        |
+--------------------------+----------------------------------------------+
| character_set_client     | latin1                                       |
| character_set_connection | latin1                                       |
| character_set_database   | sjis                                         |
| character_set_filesystem | binary                                       |
| character_set_results    | latin1                                       |
| character_set_server     | sjis                                         |
| character_set_system     | utf8                                         |
| character_sets_dir       | C:\Program Files\xampp\mysql\share\charsets\ |
+--------------------------+----------------------------------------------+
8 rows in set (0.01 sec)


②の方はまだ変わりない。



【対策2】クライアントは毎回起動オプションで sjis を指定する。
コマンドプロンプトから「mysql -u root」で実行していたが、下記コマンドで起動するようにする。
    mysql --default-character-set=sjis -u root

この時点で、①・②の結果は以下
①:
+--------------------------+----------------------------------------------------+
| Variable_name            | Value                                              |
+--------------------------+----------------------------------------------------+
| character_set_client     | sjis                                               |
| character_set_connection | sjis                                               |
| character_set_database   | sjis                                               |
| character_set_filesystem | binary                                             |
| character_set_results    | sjis                                               |
| character_set_server     | sjis                                               |
| character_set_system     | utf8                                               |
| character_sets_dir       | C:\Program Files\xampp\mysql\share\charsets\ |
+--------------------------+----------------------------------------------------+
8 rows in set (0.01 sec)

②:
--------------
mysql  Ver 14.14 Distrib 5.1.41, for Win32 (ia32)

Connection id:          1
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.1.41 Source distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Client characterset:    sjis
Server characterset:    sjis
TCP port:               3306
Uptime:                 34 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 19  Flush tables: 1  Open tables: 12  Queries per
second avg: 0.117
--------------



【対策3】データベース作成時は毎回 character set を指定する。
    create database <dbname> default character set sjis;

これもここを参考にさせて貰った。



しばらくこのやり方で続けてみます。

誤った認識等に気づいた人は是非是非突っ込みをお願いします。
タグ:メモ MySQL 技術

Gmail の検索コマンド(ランダム更新) [メモ]

■Gmail でのラベルの絞込み(検索窓に打込むコマンド)
参考にさせてもらったURL

  1.ラベル "ショッピング" と "WEBサービス" が両方付いたメールの検索
      l:ショッピング l:WEBサービス
  2.ラベル "ショッピング" が付いていて "WEBサービス" が付いていないメールの検索
      l:ショッピング -l:WEBサービス
  3.2.の条件でさらに未読のメールの検索
      l:ショッピング -l:WEBサービス is:unread


タグ:メモ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。