2013年05月26日

MySQL で EUC-JP と UTF-8 の共存

前から使っている MySQL ですが、デフォルトの文字コードは EUC-JP になっています。

mysql>  show variables like 'character_set%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | ujis                                          |
| character_set_connection | ujis                                          |
| character_set_database   | ujis                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | ujis                                          |
| character_set_server     | ujis                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------+
この状態で UTF-8 の database を作りたいと思ったときに色々と面倒だったのでそのメモ。
database 自体は、database を作成する時に DEFAULT CHARACTER SET を指定すればよいだけでした。
CREATE DATABASE hoge DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
な感じ。
MySQL クライアントを使って上記で作った hoge を使う場合は --default-character-set=utf8 を指定。
$ mysql --default-character-set=utf8 -u user -p hoge
PHP から使う場合は、SET NAMES utf8 COLLATE utf8_general_ci という SQL を PHP から叩くというのが定石でしたが、現在は推奨されていないようです。
mysql_set_charset('utf8') を使うのが良いという話がありましたが、これも PHP5.5.0で非推奨になったらしいです。
詳しくは mysql_set_charset で。
推奨通りにやろうとするとなかなか面倒ではあります。
ラベル:MySQL
posted by おちエン at 20:50| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年05月03日

jinja2 のループでのカウンター

jinja2 の loop 内でカウンターが必要な場合、loop.index という変数が使えます。
ドキュメントには書いてあるんで、当たり前の話ではありますが。。。
{% for hoge in hoges %}
{{loop.index}}. {{hoge}}
{% endfor %}
という感じで使えます。
ちなみに loop.index は 1 からカウントされ、loop.index0 は 0 からカウントされます。
なかなか、いたれりつくせりです。
ラベル:Python jinja2
posted by おちエン at 21:21| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年04月25日

-webkit-overflow-scrolling: touch がきかない場合

以前は iOS 系では「スクロールは2本指でできます」とか「iScroll を使いましょう」というのが定番でしたが、-webkit-overflow-scrolling: touch が登場してくれたおかげで、
.scroll {
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
}
という感じで CSS を書くだけで、1本指で、しかも慣性スクロールできるようになりました。
かなり楽な世の中になりました。

ちなみに Android でも Android 4.0.4 Safari/534.30 であれば、-webkit-overflow-scrolling: touch が動作しました。
が、scroll をつける div などの高さを設定しておかないとスクロールバーが表示されず、スクロールできませんでした。
Android でも -webkit-overflow-scrolling: touch を使いたいのにうまく動作しないという場合は、scroll させたい領域の高さを指定してみることをおすすめします。
続きを読む
ラベル:HTML5 CSS
posted by おちエン at 00:00| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年04月24日

Android の scrollTop

Audio の話はお休みして、今日は Android の話。
Android で -webkit-overflow-scrolling: touch などとした scroll 領域に対して、JavaScript から scrollTop を設定してもこれが全く利きません。
かなり雑ですが、以下のようなコード。
<ul id="scroll">
<li>aaaaaaaaaaaa</li>
<li>bbbbbbbbbbbb</li>
<li>cccccccccccc</li>
// 省略
<li>zzzzzzzzzzzzzz</li>
</ul>

<script type="text/javascript">
<!--
$(document).ready(function(){
	var y = "100px";
	$("#scroll").animate({scrollTop: y});
});
//-->
</script>
PC では当然、iPhone や iPad でも動きますが、Android では Safari, Chrome 共に動きません。
この問題については、https://code.google.com/p/android/issues/detail?id=19625 でみんなが不平不満を書き込んでいます。
この URL に解決方法として、
  1. overflow: auto を overflow: hidden に変更
  2. scrollTop を設定
  3. overflow を再度 auto もしくは scroll に戻す
ということが書かれていますが、Android 4 系では3番目で結局 scrollTop が元に戻る、すなわち 0 になってしまいました。
現状では、この bug が修正するのを待つしかないようです。
ラベル:HTML5 jquery javascript
posted by おちエン at 01:24| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年04月22日

HTML5 Audio の tips【iOSの仕様 3】

iOS ではユーザがクリックなどの動作を行わない限り、音声がダウンロードされないという仕様を再度。
ではクリックを自動でさせたらどうなるか試してみました。
$(document).ready(function(){
	$('#pbutton').click();
});
な感じです。
残念ながらこの方法でごまかしても、iOS5 では音声は流れませんでした。

この仕様を回避する唯一の方法は、UIWebView だけの iPhone アプリを作ってしまうというものだけです。
UIWebView の設定で、
UIWebView.allowsInlineMediaPlayback = YES;
UIWebView.mediaPlaybackRequiresUserAction = NO;
とすれば、ユーザのクリックなしで音声をロードすることが可能になります。
言うまでもないですが、HTML5 app ではなくなってしまいます。
詳しくは、http://flowz.com/2011/03/apple-disabled-audiovideo-playback-in-html5/ を参照。
ラベル:javascript HTML5
posted by おちエン at 22:22| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。