雑誌にCC BY-SAのコンテンツを取り込んだ時に及ぶ影響の範囲

nogajun
nogajun

_

昨日書いた話の続き。

Facebookでやまねさんにツッコまれたのだけど、雑誌にCC BY-SAのコンテンツを取り込んだ場合、そのライセンスの及ぶ範囲というのはどこまでなんだろうね。

_ leaflet.jsを使ったCordovaアプリのソースをgithubに置きました

ソースがblogに貼り付けるにはデカくなってきたのと、ワテさんとかからツッコミが入ったのでgithubに置きました。 ツッコミ、コワイヨー

_ PHPでマルチバイト文字列を扱うのはmbstringとiconvどっち使うといいのだろう

NibbleBlogというPHPで書かれたblogシステムがあります。

見た目が今どきな感じでデータベース不要。データをXMLテキストで保存するので小規模なblogにぴったりなシステムですが困ったことがあります。 それは、保存されたXMLデータの日本語文字列が文字化けしていること。

blogとしては文字化けしていないので問題ないかもしれないけれど、保存データにgrepしたりテキストを操作するツールが使えないのは、ちょっとイヤな感じだなと思って調べてみました。

それで分かったことは、NibbleBlogは、XMLの保存にSimpleXMLを使っています。 SimpleXMLは、UTF-8以外でエンコーディングされた文字列が入るとパースの問題が出るそうで、その対策のためutf8_encode関数を使って入力された文字列を強制的にUTF-8エンコードします。

このutf8_encode関数、入力された文字列を調べることもなく、入ってきた文字列はすべてISO-8859-1として扱うのでヘンにぶった切ってエンコードした結果、保存されたXMLは文字化けになっているという事らしい。

原因が分かれば、utf8_encodeを止めて、ほかのマルチバイト文字列を扱う関数で置き換えればということで、 _utf8encode($val) と書いてある部分を、mbstringの _mb_convertencoding($val,"UTF-8","auto") に置き換えて、出力部分のutf8_decodeを削ったところでハタと気がついた。

もしかして、海外の人はmbstring使わないかも…?

PHPの知識は昔のままで止まっているのだけど、PHPで今どきのマルチバイト文字列を扱うのはmbstringとiconvどっちがいいんですかね?

_ Apache Cordovaにはbash completionでオプションを補完するためのファイルが入ってる

ビルドを繰り返すときサブコマンドの入力が面倒だなと思っていたけど、bash comletion用のファイルが入ってるそうなのでサクッと設定。

# ln -s /usr/local/lib/node_modules/cordova/scripts/cordova.completion /etc/bash_completion.d/

ちょっと楽になった。