約 1,374,201 件
https://w.atwiki.jp/benewnarusuji/pages/13.html
mysql status Server characterset sjis Db characterset sjis Client characterset sjis Conn. characterset sjis Server characterset サーバーのデフォルトキャラクタセット Db characterset デフォルトデータベース(use xxxで選択したデータベース)で使用される文字コード。デフォルトデータベースがまだ選択されていない場合は、Server charactersetと同じものが表示される。 Client characterset クライアントから送られてくるクエリの文字コードを指定。 Conn. characterset サーバーはクエリを受信した後に変換する文字コードを指定する。サーバーはクライアントから送られたクエリをClient charactersetからConn. charactersetに変換する。 参考 http //wiki.bit-hive.com/tomizoo/pg/MySQL%20%CA%B8%BB%FA%A5%B3%A1%BC%A5%C9%B4%D8%CF%A2
https://w.atwiki.jp/wiki6_pne/pages/20.html
mysql ALTER TABLE `c_review` CHANGE `image_small` `image_small` VARCHAR( 255 ) CHARACTER SET sjis COLLATE sjis_japanese_ci NOT NULL; mysql ALTER TABLE `c_review` CHANGE `image_medium` `image_medium` VARCHAR( 255 ) CHARACTER SET sjis COLLATE sjis_japanese_ci NOT NULL; mysql ALTER TABLE `c_review` CHANGE `image_large` `image_large` VARCHAR( 255 ) CHARACTER SET sjis COLLATE sjis_japanese_ci NOT NULL; mysql ALTER TABLE `c_review` CHANGE `url` `url` VARCHAR( 255 ) CHARACTER SET sjis COLLATE sjis_japanese_ci NOT NULL; これ必須でした>レビュー デフォルトだと50文字なので途切れるです。 参考 http //pc8.2ch.net/test/read.cgi/php/1126456474/316
https://w.atwiki.jp/benewnarusuji/pages/14.html
デフォルト mysql status -------------- mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32) Server characterset sjis Db characterset sjis Client characterset sjis Conn. characterset sjis mysql show variables like %char% ; +--------------------------+------------------------------+ | 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 | H \mysql\share\charsets\ | +--------------------------+------------------------------+ 文字コードセット(ujis) mysql set names ujis; mysql status Server characterset sjis Db characterset sjis Client characterset ujis --変化 Conn. characterset ujis --変化 mysql show variables like %char% ; +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | character_set_client | ujis | --変化 | character_set_connection | ujis | --変化 | character_set_database | sjis | | character_set_filesystem | binary | | character_set_results | ujis | --変化 | character_set_server | sjis | | character_set_system | utf8 | | character_sets_dir | H \mysql\share\charsets\ | +--------------------------+--------------------------+
https://w.atwiki.jp/omisono_php/pages/39.html
AccessとMysql の設定でとても困ったこと・・・。 解決済みの問題等を覚え書き my.ini と my.cnf の設定 [WinMySQLAdmin] Server=c /xampp/mysql/bin/mysqld-nt.exe datadir = c /xampp/mysql/bin [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysql-dump] default-character-set=sjis ######################################## [client] port = 3306 socket = "C /xampp/mysql/mysql.sock" [mysqld] port= 3306 socket= "C /xampp/mysql/mysql.sock" basedir="C /xampp/mysql" tmpdir="C /xampp/tmp" datadir="C /xampp/mysql/data" skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M skip-character-set-client-handshake character-set-server = sjis collation-server = sjis_japanese_ci server-id = 1 innodb_data_home_dir = "C /xampp/mysql/" innodb_data_file_path = ibdata1 10M autoextend innodb_log_group_home_dir = "C /xampp/mysql/" innodb_log_arch_dir = "C /xampp/mysql/" innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M default-character-set = SJIS skip-opt create-options set-charset hex-blob single-transaction master-data [mysql] default-character-set = SJIS no-auto-rehash [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout という形にしたところ dos窓から操作した variables like ( char% ); で調べてもC \xampp\mysql\bin mysql -u root -p Enter password ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 81 Server version 5.0.51b-community-nt MySQL Community Edition (GPL) Type help; or \h for help. Type \c to clear the buffer. mysql show variables like char% ; +--------------------------+-------------------------------------+ | 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 | システムの utf8 は固定みたいです。 | character_sets_dir | C \xampp\mysql\share\charsets\ | +--------------------------+-------------------------------------+ 8 rows in set (0.08 sec) mysql exit; Bye C \xampp\mysql\bin とこうなった。 my.ini と my.cnf の読込順 後から読み込まれた設定が、前の設定を上書きします。 Unix系列の場合 /etc/my.cnf → データディレクトリ/my.cnf → --defaults-extra-file=で指定されたファイル → ~/.my.cnf 「データディレクトリ/my.cnf」 は、コンパイル時に指定されたデータディレクトリ固定です。 MS-Windows 系列の場合 %WINDIR%\my.ini → C \my.cnf → --defaults-extra-file=で指定されたファイル my.ini , my.cnf が同時に存在する時は、両方読まれる。my.ini が先に読まれる(今は) 特別に 全ての OS において --defaults-file= で設定ファイルが指定された場合、指定されたファイルだけが読まれる。 とあります。どういう順番で読み込まれるのかはよくわからないのですが、c \windows ディレクトリにmy.ini と my.cnf を同時にコピーすると読み込んだ。この設定で、めでたく sjis でデータベースを構築することができたみたい。設定だけきちんとやって PHP できちんと表示されるかどうかをテストしたい。
https://w.atwiki.jp/bookadmin104/pages/12.html
package jcode; ;###################################################################### ;# ;# jcode.pl Perl library for Japanese character code conversion ;# ;# Copyright (c) 1995-2000 Kazumasa Utashiro utashiro@iij.ad.jp ;# Internet Initiative Japan Inc. ;# 3-13 Kanda Nishiki-cho, Chiyoda-ku, Tokyo 101-0054, Japan ;# ;# Copyright (c) 1992,1993,1994 Kazumasa Utashiro ;# Software Research Associates, Inc. ;# ;# Use and redistribution for ANY PURPOSE are granted as long as all ;# copyright notices are retained. Redistribution with modification ;# is allowed provided that you make your modified version obviously ;# distinguishable from the original one. THIS SOFTWARE IS PROVIDED ;# BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES ARE ;# DISCLAIMED. ;# ;# Original version was developed under the name of srekcah@sra.co.jp ;# February 1992 and it was called kconv.pl at the beginning. This ;# address was a pen name for group of individuals and it is no longer ;# valid. ;# ;# The latest version is available here ;# ;#ftp //ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/ ;# ;; $rcsid = q$Id jcode.pl,v 2.13 2000/09/29 16 10 05 utashiro Exp $; ;# ;###################################################################### ;# ;# PERL4 INTERFACE ;# ;# jcode getcode(*line) ;#Return jis , sjis , euc or undef according to ;#Japanese character code in $line. Return binary if ;#the data has non-character code. ;# ;#When evaluated in array context, it returns a list ;#contains two items. First value is the number of ;#characters which matched to the expected code, and ;#second value is the code name. It is useful if and ;#only if the number is not 0 and the code is undef; ;#that case means it couldn t tell euc or sjis ;#because the evaluation score was exactly same. This ;#interface is too tricky, though. ;# ;#Code detection between euc and sjis is very difficult ;#or sometimes impossible or even lead to wrong result ;#when it includes JIS X0201 KANA characters. So JIS ;#X0201 KANA is ignored for automatic code detection. ;# ;# jcode convert(*line, $ocode [, $icode [, $option]]) ;#Convert the contents of $line to the specified ;#Japanese code given in the second argument $ocode. ;#$ocode can be any of "jis", "sjis" or "euc", or use ;#"noconv" when you don t want the code conversion. ;#Input code is recognized automatically from the line ;#itself when $icode is not supplied (JIS X0201 KANA is ;#ignored in code detection. See the above descripton ;#of getcode). $icode also can be specified, but ;#xxx2yyy routine is more efficient when both codes are ;#known. ;# ;#It returns the code of input string in scalar context, ;#and a list of pointer of convert subroutine and the ;#input code in array context. ;# ;#Japanese character code JIS X0201, X0208, X0212 and ;#ASCII code are supported. X0212 characters can not be ;#represented in SJIS and they will be replased by ;#"geta" character when converted to SJIS. ;# ;#See next paragraph for $option parameter. ;# ;# jcode xxx2yyy(*line [, $option]) ;#Convert the Japanese code from xxx to yyy. String xxx ;#and yyy are any convination from "jis", "euc" or ;#"sjis". They return *approximate* number of converted ;#bytes. So return value 0 means the line was not ;#converted at all. ;# ;#Optional parameter $option is used to specify optional ;#conversion method. String "z" is for JIS X0201 KANA ;#to X0208 KANA, and "h" is for reverse. ;# ;#$jcode convf{ xxx , yyy } ;#The value of this associative array is pointer to the ;#subroutine jcode xxx2yyy(). ;# ;# jcode to($ocode, $line [, $icode [, $option]]) ;# jcode jis($line [, $icode [, $option]]) ;# jcode euc($line [, $icode [, $option]]) ;# jcode sjis($line [, $icode [, $option]]) ;#These functions are prepared for easy use of ;#call/return-by-value interface. You can use these ;#funcitons in s///e operation or any other place for ;#convenience. ;# ;# jcode jis_inout($in, $out) ;#Set or inquire JIS start and end sequences. Default ;#is "ESC-$-B" and "ESC-(-B". If you supplied only one ;#character, "ESC-$" or "ESC-(" is prepended for each ;#character respectively. Acutually "ESC-(-B" is not a ;#sequence to end JIS code but a sequence to start ASCII ;#code set. So `in and `out are somewhat misleading. ;# ;# jcode get_inout($string) ;#Get JIS start and end sequences from $string. ;# ;# jcode cache() ;# jcode nocache() ;# jcode flush() ;#Usually, converted character is cached in memory to ;#avoid same calculations have to be done many times. ;#To disable this caching, call jcode nocache(). It ;#can be revived by jcode cache() and cache is flushed ;#by calling jcode flush(). cache() and nocache() ;#functions return previous caching state. ;# ;#--------------------------------------------------------------- ;# ;# jcode h2z_xxx(*line) ;#JIS X0201 KANA (so-called Hankaku-KANA) to X0208 KANA ;#(Zenkaku-KANA) code conversion routine. String xxx is ;#any of "jis", "sjis" and "euc". From the difficulty ;#of recognizing code set from 1-byte KATAKANA string, ;#automatic code recognition is not supported. ;# ;# jcode z2h_xxx(*line) ;#X0208 to X0201 KANA code conversion routine. String ;#xxx is any of "jis", "sjis" and "euc". ;# ;#$jcode z2hf{ xxx } ;#$jcode h2zf{ xxx } ;#These are pointer to the corresponding function just ;#as $jcode convf. ;# ;#--------------------------------------------------------------- ;# ;# jcode tr(*line, $from, $to [, $option]) ;# jcode tr emulates tr operator for 2 byte code. Only d ;#is interpreted as an option. ;# ;#Range operator like `A-Z for 2 byte code is partially ;#supported. Code must be JIS or EUC, and first byte ;#have to be same on first and last character. ;# ;#CAUTION Handling range operator is a kind of trick ;#and it is not perfect. So if you need to transfer `- ;#character, please be sure to put it at the beginning ;#or the end of $from and $to strings. ;# ;# jcode trans($line, $from, $to [, $option) ;#Same as jcode tr but accept string and return string ;#after translation. ;# ;#--------------------------------------------------------------- ;# ;# jcode init() ;#Initialize the variables used in this package. You ;#don t have to call this when using jocde.pl by `do or ;#`require interface. Call it first if you embedded ;#the jcode.pl at the end of your script. ;# ;###################################################################### ;# ;# PERL5 INTERFACE ;# ;# Current jcode.pl is written in Perl 4 but it is possible to use ;# from Perl 5 using `references . Fully perl5 capable version is ;# future issue. ;# ;# Since lexical variable is not a subject of typeglob, *string style ;# call doesn t work if the variable is declared as `my . Same thing ;# happens to special variable $_ if the perl is compiled to use ;# thread capability. So using reference is generally recommented to ;# avoid the mysterious error. ;# ;#jcode getcode(\$line) ;#jcode convert(\$line, $ocode [, $icode [, $option]]) ;#jcode xxx2yyy(\$line [, $option]) ;# {$jcode convf{ xxx , yyy }}(\$line) ;#jcode to($ocode, $line [, $icode [, $option]]) ;#jcode jis($line [, $icode [, $option]]) ;#jcode euc($line [, $icode [, $option]]) ;#jcode sjis($line [, $icode [, $option]]) ;#jcode jis_inout($in, $out) ;#jcode get_inout($string) ;#jcode cache() ;#jcode nocache() ;#jcode flush() ;#jcode h2z_xxx(\$line) ;#jcode z2h_xxx(\$line) ;# {$jcode z2hf{ xxx }}(\$line) ;# {$jcode h2zf{ xxx }}(\$line) ;#jcode tr(\$line, $from, $to [, $option]) ;#jcode trans($line, $from, $to [, $option) ;#jcode init() ;# ;###################################################################### ;# ;# SAMPLES ;# ;# Convert any Kanji code to JIS and print each line with code name. ;# ;#while (defined($s = )) { ;# $code = jcode convert(*s, jis ); ;# print $code, "\t", $s; ;#} ;# ;# Convert all lines to JIS according to the first recognized line. ;# ;#while (defined($s = )) { ;# print, next unless $s =~ /[\033\200-\377]/; ;# (*f, $icode) = jcode convert(*s, jis ); ;# print; ;# defined( f) || next; ;# while ( ) { f(*s); print; } ;# last; ;#} ;# ;# The safest way of JIS conversion. ;# ;#while (defined($s = )) { ;# ($matched, $icode) = jcode getcode(*s); ;# if (@buf == 0 $matched == 0) { ;#print $s; ;#next; ;# } ;# push(@buf, $s); ;# next unless $icode; ;# while (defined($s = shift(@buf))) { ;# jcode convert(*s, jis , $icode); ;#print $s; ;# } ;# while (defined($s = )) { ;# jcode convert(*s, jis , $icode); ;#print $s; ;# } ;# last; ;#} ;#print @buf if @buf; ;# ;###################################################################### ;# ;# Call initialize function if it is not called yet. This may sound ;# strange but it makes easy to embed the jcode.pl at the end of ;# script. Call jcode init at the beginning of the script in that ;# case. ;# init unless defined $version; ;# ;# Initialize variables. ;# sub init { $version = $rcsid =~ /,v ([\d.]+)/ ? $1 unknown ; $re_bin = [\000-\006\177\377] ; $re_jis0208_1978 = \e\$\@ ; $re_jis0208_1983 = \e\$B ; $re_jis0208_1990 = \e \@\e\$B ; $re_jis0208 = "$re_jis0208_1978|$re_jis0208_1983|$re_jis0208_1990"; $re_jis0212 = \e\$\(D ; $re_jp = "$re_jis0208|$re_jis0212"; $re_asc = \e\([BJ] ; $re_kana = \e\(I ; $esc_0208 = "\e\$B"; $esc_0212 = "\e\$(D"; $esc_asc = "\e(B"; $esc_kana = "\e(I"; $re_sjis_c = [\201-\237\340-\374][\100-\176\200-\374] ; $re_sjis_kana = [\241-\337] ; $re_euc_c = [\241-\376][\241-\376] ; $re_euc_kana = \216[\241-\337] ; $re_euc_0212 = \217[\241-\376][\241-\376] ; # Use `geta for undefined character code $undef_sjis = "\x81\xac"; $cache = 1; # X0201 - X0208 KANA conversion table. Looks weird? Not that # much. This is simply JIS text without escape sequences. ($h2z_high = $h2z = __TABLE_END__ ) =~ tr/\041-\176/\241-\376/; !!#$!"%! "!V#!W ^!+_!,0! %!(%#)%%*% +%) ,%c-%e.%g/%C 1%"2%$3% 4%(5%* 6%+7%-8%/9%1 %3 6^%,7^%.8^%09^%2 ^%4 ;%5 %7=%9 %;?%= ;^%6 ^%8=^% ^% ?^% @%?A%AB%DC%FD%H @^%@A^%BB^%EC^%GD^%I E%JF%KG%LH%MI%N J%OK%RL%UM%XN%[ J^%PK^%SL^%VM^%YN^%\ J_%QK_%TL_%WM_%ZN_%] O%^P%_Q%`R%aS%b T%dU%fV%h W%iX%jY%kZ%l[%m \%o]%s %r3^%t __TABLE_END__ %h2z = split(/\s+/, $h2z . $h2z_high); %z2h = reverse %h2z; $convf{ jis , jis } = *jis2jis; $convf{ jis , sjis } = *jis2sjis; $convf{ jis , euc } = *jis2euc; $convf{ euc , jis } = *euc2jis; $convf{ euc , sjis } = *euc2sjis; $convf{ euc , euc } = *euc2euc; $convf{ sjis , jis } = *sjis2jis; $convf{ sjis , sjis } = *sjis2sjis; $convf{ sjis , euc } = *sjis2euc; $h2zf{ jis } = *h2z_jis; $z2hf{ jis } = *z2h_jis; $h2zf{ euc } = *h2z_euc; $z2hf{ euc } = *z2h_euc; $h2zf{ sjis } = *h2z_sjis; $z2hf{ sjis } = *z2h_sjis; } ;# ;# Set escape sequences which should be put before and after Japanese ;# (JIS X0208) string. ;# sub jis_inout { $esc_0208 = shift || $esc_0208; $esc_0208 = "\e\$$esc_0208" if length($esc_0208) == 1; $esc_asc = shift || $esc_asc; $esc_asc = "\e\($esc_asc" if length($esc_asc) == 1; ($esc_0208, $esc_asc); } ;# ;# Get JIS in and out sequences from the string. ;# sub get_inout { local($esc_0208, $esc_asc); $_[$[] =~ /($re_jis0208)/o ($esc_0208 = $1); $_[$[] =~ /($re_asc)/o ($esc_asc = $1); ($esc_0208, $esc_asc); } ;# ;# Recognize character code. ;# sub getcode { local(*s) = @_; local($matched, $code); if ($s !~ /[\e\200-\377]/) {# not Japanese $matched = 0; $code = undef; }# jis elsif ($s =~ /$re_jp|$re_asc|$re_kana/o) { $matched = 1; $code = jis ; } elsif ($s =~ /$re_bin/o) {# binary $matched = 0; $code = binary ; } else {# should be euc or sjis local($sjis, $euc) = (0, 0); while ($s =~ /(($re_sjis_c)+)/go) { $sjis += length($1); } while ($s =~ /(($re_euc_c|$re_euc_kana|$re_euc_0212)+)/go) { $euc += length($1); } $matched = max($sjis, $euc); $code = ( euc , undef, sjis )[($sjis = $euc) + $[ + 1]; } wantarray ? ($matched, $code) $code; } sub max { $_[ $[ + ($_[ $[ ] $_[ $[ + 1 ]) ]; } ;# ;# Convert any code to specified code. ;# sub convert { local(*s, $ocode, $icode, $opt) = @_; return (undef, undef) unless $icode = $icode || getcode(*s); return (undef, $icode) if $icode eq binary ; $ocode = jis unless $ocode; $ocode = $icode if $ocode eq noconv ; local(*f) = $convf{$icode, $ocode}; f(*s, $opt); wantarray ? (*f, $icode) $icode; } ;# ;# Easy return-by-value interfaces. ;# sub jis { to( jis , @_); } sub euc { to( euc , @_); } sub sjis { to( sjis , @_); } sub to { local($ocode, $s, $icode, $opt) = @_; convert(*s, $ocode, $icode, $opt); $s; } sub what { local($s) = @_; getcode(*s); } sub trans { local($s) = shift; tr(*s, @_); $s; } ;# ;# SJIS to JIS ;# sub sjis2jis { local(*s, $opt, $n) = @_; sjis2sjis(*s, $opt) if $opt; $s =~ s/(($re_sjis_c|$re_sjis_kana)+)/ _sjis2jis($1) . $esc_asc/geo; $n; } sub _sjis2jis { local($s) = shift; $s =~ s/(($re_sjis_c)+|($re_sjis_kana)+)/ __sjis2jis($1)/geo; $s; } sub __sjis2jis { local($s) = shift; if ($s =~ /^$re_sjis_kana/o) { $n += $s =~ tr/\241-\337/\041-\137/; $esc_kana . $s; } else { $n += $s =~ s/($re_sjis_c)/$s2e{$1}|| s2e($1)/geo; $s =~ tr/\241-\376/\041-\176/; $esc_0208 . $s; } } ;# ;# EUC to JIS ;# sub euc2jis { local(*s, $opt, $n) = @_; euc2euc(*s, $opt) if $opt; $s =~ s/(($re_euc_c|$re_euc_kana|$re_euc_0212)+)/ _euc2jis($1) . $esc_asc /geo; $n; } sub _euc2jis { local($s) = shift; $s =~ s/(($re_euc_c)+|($re_euc_kana)+|($re_euc_0212)+)/ __euc2jis($1)/geo; $s; } sub __euc2jis { local($s) = shift; local($esc); if ($s =~ tr/\216//d) { $esc = $esc_kana; } elsif ($s =~ tr/\217//d) { $esc = $esc_0212; } else { $esc = $esc_0208; } $n += $s =~ tr/\241-\376/\041-\176/; $esc . $s; } ;# ;# JIS to EUC ;# sub jis2euc { local(*s, $opt, $n) = @_; $s =~ s/($re_jp|$re_asc|$re_kana)([^\e]*)/ _jis2euc($1,$2)/geo; euc2euc(*s, $opt) if $opt; $n; } sub _jis2euc { local($esc, $s) = @_; if ($esc !~ /^$re_asc/o) { $n += $s =~ tr/\041-\176/\241-\376/; if ($esc =~ /^$re_kana/o) { $s =~ s/([\241-\337])/\216$1/g; } elsif ($esc =~ /^$re_jis0212/o) { $s =~ s/([\241-\376][\241-\376])/\217$1/g; } } $s; } ;# ;# JIS to SJIS ;# sub jis2sjis { local(*s, $opt, $n) = @_; jis2jis(*s, $opt) if $opt; $s =~ s/($re_jp|$re_asc|$re_kana)([^\e]*)/ _jis2sjis($1,$2)/geo; $n; } sub _jis2sjis { local($esc, $s) = @_; if ($esc =~ /^$re_jis0212/o) { $s =~ s/../$undef_sjis/g; $n = length; } elsif ($esc !~ /^$re_asc/o) { $n += $s =~ tr/\041-\176/\241-\376/; if ($esc =~ /^$re_jp/o) { $s =~ s/($re_euc_c)/$e2s{$1}|| e2s($1)/geo; } } $s; } ;# ;# SJIS to EUC ;# sub sjis2euc { local(*s, $opt,$n) = @_; $n = $s =~ s/($re_sjis_c|$re_sjis_kana)/$s2e{$1}|| s2e($1)/geo; euc2euc(*s, $opt) if $opt; $n; } sub s2e { local($c1, $c2, $code); ($c1, $c2) = unpack( CC , $code = shift); if (0xa1 = $c1 $c1 = 0xdf) { $c2 = $c1; $c1 = 0x8e; } elsif (0x9f = $c2) { $c1 = $c1 * 2 - ($c1 = 0xe0 ? 0xe0 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 = 0xe0 ? 0xe1 0x61); $c2 += 0x60 + ($c2 0x7f); } if ($cache) { $s2e{$code} = pack( CC , $c1, $c2); } else { pack( CC , $c1, $c2); } } ;# ;# EUC to SJIS ;# sub euc2sjis { local(*s, $opt,$n) = @_; euc2euc(*s, $opt) if $opt; $n = $s =~ s/($re_euc_c|$re_euc_kana|$re_euc_0212)/$e2s{$1}|| e2s($1)/geo; } sub e2s { local($c1, $c2, $code); ($c1, $c2) = unpack( CC , $code = shift); if ($c1 == 0x8e) {# SS2 return substr($code, 1, 1); } elsif ($c1 == 0x8f) {# SS3 return $undef_sjis; } elsif ($c1 % 2) { $c1 = ($c1 1) + ($c1 0xdf ? 0x31 0x71); $c2 -= 0x60 + ($c2 0xe0); } else { $c1 = ($c1 1) + ($c1 0xdf ? 0x30 0x70); $c2 -= 2; } if ($cache) { $e2s{$code} = pack( CC , $c1, $c2); } else { pack( CC , $c1, $c2); } } ;# ;# JIS to JIS, SJIS to SJIS, EUC to EUC ;# sub jis2jis { local(*s, $opt) = @_; $s =~ s/$re_jis0208/$esc_0208/go; $s =~ s/$re_asc/$esc_asc/go; h2z_jis(*s) if $opt =~ /z/; z2h_jis(*s) if $opt =~ /h/; } sub sjis2sjis { local(*s, $opt) = @_; h2z_sjis(*s) if $opt =~ /z/; z2h_sjis(*s) if $opt =~ /h/; } sub euc2euc { local(*s, $opt) = @_; h2z_euc(*s) if $opt =~ /z/; z2h_euc(*s) if $opt =~ /h/; } ;# ;# Cache control functions ;# sub cache { ($cache, $cache = 1)[$[]; } sub nocache { ($cache, $cache = 0)[$[]; } sub flushcache { undef %e2s; undef %s2e; } ;# ;# X0201 - X0208 KANA conversion routine ;# sub h2z_jis { local(*s, $n) = @_; if ($s =~ s/$re_kana([^\e]*)/$esc_0208 . _h2z_jis($1)/geo) { 1 while $s =~ s/(($re_jis0208)[^\e]*)($re_jis0208)/$1/o; } $n; } sub _h2z_jis { local($s) = @_; $n += $s =~ s/(([\041-\137])([\136\137])?)/ $h2z{$1} || $h2z{$2} . $h2z{$3} /ge; $s; } sub h2z_euc { local(*s) = @_; $s =~ s/\216([\241-\337])(\216([\336\337]))?/ $h2z{"$1$3"} || $h2z{$1} . $h2z{$3} /ge; } sub h2z_sjis { local(*s, $n) = @_; $s =~ s/(($re_sjis_c)+)|(([\241-\337])([\336\337])?)/ $1 || ($n++, $h2z{$3} ? $e2s{$h2z{$3}} || e2s($h2z{$3}) e2s($h2z{$4}) . ($5 e2s($h2z{$5}))) /geo; $n; } ;# ;# X0208 - X0201 KANA conversion routine ;# sub z2h_jis { local(*s, $n) = @_; $s =~ s/($re_jis0208)([^\e]+)/ _z2h_jis($2)/geo; $n; } sub _z2h_jis { local($s) = @_; $s =~ s/((\%[!-~]|![\#\" VW+, ])+|([^!%][!-~]|![^\#\" VW+, ])+)/ __z2h_jis($1) /ge; $s; } sub __z2h_jis { local($s) = @_; return $esc_0208 . $s unless $s =~ /^%/ || $s =~ /^![\#\" VW+, ]/; $n += length($s) / 2; $s =~ s/(..)/$z2h{$1}/g; $esc_kana . $s; } sub z2h_euc { local(*s, $n) = @_; init_z2h_euc unless defined %z2h_euc; $s =~ s/($re_euc_c|$re_euc_kana)/ $z2h_euc{$1} ? ($n++, $z2h_euc{$1}) $1 /geo; $n; } sub z2h_sjis { local(*s, $n) = @_; init_z2h_sjis unless defined %z2h_sjis; $s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) $1/geo; $n; } ;# ;# Initializing JIS X0208 to X0201 KANA table for EUC and SJIS. This ;# can be done in init but it s not worth doing. Similarly, ;# precalculated table is not worth to occupy the file space and ;# reduce the readability. The author personnaly discourages to use ;# X0201 Kana character in the any situation. ;# sub init_z2h_euc { local($k, $s); while (($k, $s) = each %z2h) { $s =~ s/([\241-\337])/\216$1/g ($z2h_euc{$k} = $s); } } sub init_z2h_sjis { local($s, $v); while (($s, $v) = each %z2h) { $s =~ /[\200-\377]/ ($z2h_sjis{ e2s($s)} = $v); } } ;# ;# TR function for 2-byte code ;# sub tr { # $prev_from, $prev_to, %table are persistent variables local(*s, $from, $to, $opt) = @_; local(@from, @to); local($jis, $n) = (0, 0); $jis++, jis2euc(*s) if $s =~ /$re_jp|$re_asc|$re_kana/o; $jis++ if $to =~ /$re_jp|$re_asc|$re_kana/o; if (!defined($prev_from) || $from ne $prev_from || $to ne $prev_to) { ($prev_from, $prev_to) = ($from, $to); undef %table; _maketable; } $s =~ s/([\200-\377][\000-\377]|[\000-\377])/ defined($table{$1}) ++$n ? $table{$1} $1 /ge; euc2jis(*s) if $jis; $n; } sub _maketable { local($ascii) = (\\\\[\\-\\\\]|[\0-\133\135-\177]) ; jis2euc(*to) if $to =~ /$re_jp|$re_asc|$re_kana/o; jis2euc(*from) if $from =~ /$re_jp|$re_asc|$re_kana/o; grep(s/(([\200-\377])[\200-\377]-\2[\200-\377])/ _expnd2($1)/ge, $from, $to); grep(s/($ascii-$ascii)/ _expnd1($1)/geo, $from, $to); @to = $to =~ /[\200-\377][\000-\377]|[\000-\377]/g; @from = $from =~ /[\200-\377][\000-\377]|[\000-\377]/g; push(@to, ($opt =~ /d/ ? $to[$#to]) x (@from - @to)) if @to @from; @table{@from} = @to; } sub _expnd1 { local($s) = @_; $s =~ s/\\(.)/$1/g; local($c1, $c2) = unpack( CxC , $s); if ($c1 = $c2) { for ($s = ; $c1 = $c2; $c1++) { $s .= pack( C , $c1); } } $s; } sub _expnd2 { local($s) = @_; local($c1, $c2, $c3, $c4) = unpack( CCxCC , $s); if ($c1 == $c3 $c2 = $c4) { for ($s = ; $c2 = $c4; $c2++) { $s .= pack( CC , $c1, $c2); } } $s; } 1;
https://w.atwiki.jp/parepan/pages/90.html
前提 以下のインストール手順では「/usr/loca/lib/php/pfg/」にインストールすることを前提 として記述します。 準備 以下のライブラリを準備します。 No ライブラリ名 機能 ダウンロードサイト ファイル 1 FPDF PDF生成ライブラリ http //fpdf.org fpdf153.tgz 2 FPDI インポート拡張ライブラリ http //fpdi.setasign.de fpdi102beta.zip 3 japanese.zip 日本語のようなマルチバイト文字サポート http //www.fpdf.org/download/japanese.zip japanese.zip インストール設定作業 1.パス設定 /usr/local/lib/php.ini ファイルの編集 include_path = "....ほかのパス /usr/loca/lib/php/pdf" 設定後はApacheを再起動 2.FPDFのインストール $ tar xvfz fpdf153.tgz $ sudo cp -R fpdf153/fpdf.php fpdf153/font /usr/local/lib/php/pdf/ $ sudo ln -s /usr/local/lib/php/pdf/font/helvetica.php /usr/local/lib/php/pdf/ 3.FPDIのインストール $ unzip fpdi102beta.zip $ sudo cp fpdi1.02beta/*.php /usr/local/lib/php/pdf/ 4.japanese.zipのインストールと設定 # unzip japanese.zip # cp japanese.php /usr/local/lib/php/pdf japanese.phpを書き換える // require( fpdf.php ); // 削除 require( fpdi.php ); // 追加 //class PDF_Japanese extends FPDF // 削除 class PDF_Japanese extends FPDI // 追加 //$name= KozMinPro-Regular-Acro ; // 削除 $name= MSGothic ; //追加 6-1.サンプルソース テンプレート無し PHPソースは「UTF-8」で保存する必要がありますのでご注意下さい。 ?php // pdf01.php ---------------------------------------------- // PDF用モジュール呼び出し require( japanese.php ); // 自スクリプトの文字コード define(SC_CHAR, "UTF8"); // インスタンス作成 $pdf = new PDF_Japanese(); // SJISフォント(MSPGothicを使用) $pdf- AddSJISFont(); // 書き込み開始 $pdf- Open(); // ページを追加(新規ページ) $pdf- AddPage(); // フォントのセット ※SJIS(MSPGothic)でフォントサイズ9 $pdf- SetFont( SJIS , , 9); // PDF書込み ※$pdf- Text(x座標, y座標, テキスト); $pdf- Text(0, 10, sjis_conv("テスト")); // PDFをブラウザに送信 $pdf- Output(); // 文字コードSJIS変換(japanese.phpで使用出来る文字コードはSJISのみ) function sjis_conv($conv_str) { return (mb_convert_encoding($conv_str, "SJIS", SC_CHAR)); } ? 6-2.サンプルソース テンプレート有り PHPソースは「UTF-8」で保存する必要がありますのでご注意下さい。 ?php // pdf02.php ---------------------------------------------- // PDF用モジュール呼び出し require( japanese.php ); // 自スクリプトの文字コード define(SC_CHAR, "UTF8"); // テンプレートPDF define(TMPL_PDF, "tmpl.pdf"); // インスタンス作成 $pdf = new PDF_Japanese(); // SJISフォント(MSPGothicを使用) $pdf- AddSJISFont(); // 書き込み開始 //$pdf- Open(); // PDFを読み込んでページ数を取得 $pageno = $pdf- setSourceFile(TMPL_PDF); // ページ番号よりIDを取得 $tplidx = $pdf- ImportPage(1); // ページを追加(新規ページ) $pdf- AddPage(); // フォントのセット ※SJIS(MSPGothic)でフォントサイズ9 $pdf- SetFont( SJIS , , 9); // テンプレート内容の位置、幅を調整 ※useTemplateに引数を与えなければ100%表示がデフォルト $pdf- useTemplate($tplidx); // PDF書込み ※$pdf- Text(x座標, y座標, テキスト); $pdf- Text(0, 10, sjis_conv("テスト")); // PDFをブラウザに送信 $pdf- Output(); // 入力してPDFファイルを閉じる $pdf- closeParsers(); // 文字コードSJIS変換(japanese.phpで使用出来る文字コードはSJISのみ) function sjis_conv($conv_str) { return (mb_convert_encoding($conv_str, "SJIS", SC_CHAR)); } ? 7.数字ような右詰文字を表現する場合の定義 -- Sample -- $pdf- SetTextColor(0,0,0); // 文字色 Black $pdf- SetXY(50.5,105); // 座標(X軸,Y軸) $pdf- CELL(29.5,6,"600,000",0,1,R); Cell関数を使います。引数は以下の通り 幅 高 表示文字 境界線 境界線文字(この引数がよくわからない) 配置 29.5 6 600,000 0 無 1 有 1 有 L 左 C 中央 R 右
https://w.atwiki.jp/omisono_php/pages/40.html
Access からエクスポートする文字化け対策として、odbcのバージョンを5にしたらすんなり読み込んだ。 そうでないと「圭」などの文字を一時変換し、エクスポートの途中でエラーになってしまうようだ。 フィールドが不正です等のエラーがでる。 odbcをバージョンアップしたら、いきなり全てのテーブルをすんなりエクスポートし、odbcの設定どおりのテーブルにデータが入った。 めでたし、めでたしである。 C \xampp\mysql\bin mysql -u root -p Enter password ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 81 Server version 5.0.51b-community-nt MySQL Community Edition (GPL) Type help; or \h for help. Type \c to clear the buffer. mysql show variables like char% ; +--------------------------+-------------------------------------+ | 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 \xampp\mysql\share\charsets\ | +--------------------------+-------------------------------------+ 8 rows in set (0.08 sec) mysql exit; Bye C \xampp\mysql\bin
https://w.atwiki.jp/blacklist/pages/282.html
Contents InterWikiへのアクセス(InterWikiNameの生成) [#nb5bafb9] サーバーリストへの追加 [#a71a4d66] WikiNameの挿入位置 [#q7ad1d6d] 文字コード変換タイプ [#k34801d3] YukiWiki系へのエンコーディング [#zeb5d7f0] InterWikiへのアクセス(InterWikiNameの生成) サーバリストにあるサーバ名 WikiNameをBracketNameで作ればInterWikiNameの完成。 これをページに記述すれば、そのサーバのWikiNameへのハイパーリンクが生成されます。 [[サーバ名 WikiName]] [[pukiwiki FrontPage]] サーバーリストへの追加 InterWikiName のページに以下のようにサーバの定義をすることで サーバーリストに追加することができます。 [URL サーバ名] タイプ [http //pukiwiki.sourceforge.jp/index.php pukiwiki] utf8 WikiNameの挿入位置 要求しようとするURLへのWikiNameの挿入位置を $1 で指定することができます。省略するとお尻にくっつきます。 -[http //pukiwiki.sourceforge.jp/index.php?cmd=backup page=$1 age=1 pukiwiki] utf8 文字コード変換タイプ PukiWiki内のページ以外にも飛ばせます。日本語をURLに含む可能性もあるのでその場合のエンコーディングの指定をタイプとして指定できます。 -[http //pukiwiki.sourceforge.jp/index.php?cmd=read page=$1 somewhere] utf8 std 省略時 内部文字エンコーディング(標準はSJIS)のままURLエンコードします。 raw asis URLエンコードしないでそのまま使用。 sjis 文字列をSJISに変換し、URLエンコードします。(mb_stringのSJISへのエイリアスです) euc 文字列を日本語EUCに変換し、URLエンコードします。(mb_stringのEUC-JPへのエイリアスです) utf8 文字列をUTF-8に変換し、URLエンコードします。(mb_stringのUTF-8へのエイリアスです) yw YukiWiki系へのエンコーディング。 moin MoinMoin用に変換します。 その他、PHP4のmb_stringでサポートされている以下のエンコード文字が使用できます。 UCS-4, UCS-4BE, UCS-4LE, UCS-2, UCS-2BE, UCS-2LE, UTF-32, UTF-32BE, UTF-32LE, UCS-2LE, UTF-16, UTF-16BE, UTF-16LE, UTF-8, UTF-7, ASCII, EUC-JP, SJIS, eucJP-win, SJIS-win, ISO-2022-JP, JIS, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-13, ISO-8859-14, ISO-8859-15, byte2be, byte2le, byte4be, byte4le, BASE64, 7bit, 8bit, UTF7-IMAP YukiWiki系へのエンコーディング WikiNameのものへはそのままURLエンコード。 BracketNameのものは[[ ]]を付加してURLエンコード。
https://w.atwiki.jp/kakis/pages/6995.html
vosjip /// / 複合概念 vos\jip \ 14 seren klel 複合概念 \
https://w.atwiki.jp/sakurawmemo/pages/25.html
読み込み ini系のインポートファイル、実行時に参照するファイルは、UTF-8(BOM)またはSJISで読み込み可能です。 sakuraw.iniも、SJISで読み込めますが、保存時にUTF-8に変更されます。 インポート、キーワードヘルプ辞書、入力補完ファイル、アウトラインruleファイル、マクロ 保存 各種エクスポートファイル、キーマクロは、UTF-8で保存されます。 その他 ctagsファイルは、SJISのみ受け付けます。 外部コマンド実行は、Unicodeでの入出力オプションがあります。 diff差分実行では、対象ファイルがSJISではない場合に、正常に動作しないことがあります。 (未確認 migemo辞書は、SJIS版のみ利用可です)