php-serialize
php-serialize copied to clipboard
Not work well for Unicode characters
Thanks for your contribution. I just used your gem and found an issue when working with Unicode characters. Here original serialized string from wordpress:
"a:2:{s:7:\"mau-sac\";a:6:{s:4:\"name\";s:10:\"Màu sắc\";s:5:\"value\";s:4:\"Xanh\";s:8:\"position\";s:1:\"0\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}s:7:\"xuat-xu\";a:6:{s:4:\"name\";s:11:\"Xuất xứ\";s:5:\"value\";s:10:\"Việt Nam\";s:8:\"position\";s:1:\"1\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}}"
Then I used your gem to unserialize and serialize again, and here is the result:
"a:2:{s:7:\"mau-sac\";a:6:{s:4:\"name\";s:10:\"M\xC3\xA0u s\xE1\xBA\xAFc\";s:5:\"value\";s:4:\"Xanh\";s:8:\"position\";s:1:\"0\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}s:7:\"xuat-xu\";a:6:{s:4:\"name\";s:11:\"Xu\xE1\xBA\xA5t x\xE1\xBB\xA9\";s:5:\"value\";s:10:\"Vi\xE1\xBB\x87t Nam\";s:8:\"position\";s:1:\"1\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}}"
It's not the same the original so wordpress can't use them at all.
It looks like this gem hasn't been maintained for awhile. I've pushed my fork with UTF-8 fixes in the meantime: http://rubygems.org/gems/k-php-serialize
Thanks @keichan34
This should be fixed via #11 from @keichan34. Released as v1.4.0 today.
> s = "a:2:{s:7:\"mau-sac\";a:6:{s:4:\"name\";s:10:\"Màu sắc\";s:5:\"value\";s:4:\"Xanh\";s:8:\"position\";s:1:\"0\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}s:7:\"xuat-xu\";a:6:{s:4:\"name\";s:11:\"Xuất x
ứ\";s:5:\"value\";s:10:\"Việt Nam\";s:8:\"position\";s:1:\"1\";s:10:\"is_visible\";i:1;s:12:\"is_variation\";i:0;s:11:\"is_taxonomy\";i:0;}}"
> PHP.serialize(PHP.unserialize(s)) == s
true
It's nice to see this gem is still being maintained. We heavily rely on it.