diff options
author | Silvio <silvio@devlet.com.br> | 2010-05-06 16:47:07 -0300 |
---|---|---|
committer | Silvio <silvio@devlet.com.br> | 2010-05-06 16:47:07 -0300 |
commit | 2b47f07b04bd346539bf10347e72a9a92873120c (patch) | |
tree | 4758fc2cd92d1678e2c0404a5698a452d91993e8 | |
parent | 3fe5626706870c2f078dd7233d60b59290622346 (diff) | |
download | cinisis-2b47f07b04bd346539bf10347e72a9a92873120c.tar.gz cinisis-2b47f07b04bd346539bf10347e72a9a92873120c.tar.bz2 |
Charset conversion fixes
-rw-r--r-- | classes/BiblioIsisDb.php | 18 | ||||
-rw-r--r-- | classes/PhpIsisDb.php | 6 | ||||
-rw-r--r-- | tests/csv.php | 5 |
3 files changed, 26 insertions, 3 deletions
diff --git a/classes/BiblioIsisDb.php b/classes/BiblioIsisDb.php index d7fdd1c..81db3e7 100644 --- a/classes/BiblioIsisDb.php +++ b/classes/BiblioIsisDb.php @@ -90,6 +90,9 @@ class BiblioIsisDb implements IsisDb { // Tag results. $data = $this->tag($results); + // Charset conversion. + array_walk_recursive($data, array(__CLASS__, 'charset')); + // Return the result. return $data; } @@ -184,4 +187,19 @@ class BiblioIsisDb implements IsisDb { } return $value; } + + /** + * Charset conversion. + * + * Converts a string from the database charset to UTF-8. + * + * @param $data + * String to be converted. + * + * @return + * String converted to UTF-8. + */ + function charset(&$data) { + $data = iconv($this->format['db']['charset'], 'UTF-8', $data); + } } diff --git a/classes/PhpIsisDb.php b/classes/PhpIsisDb.php index 1f64075..50fdf49 100644 --- a/classes/PhpIsisDb.php +++ b/classes/PhpIsisDb.php @@ -131,7 +131,7 @@ class PhpIsisDb implements IsisDb { * @return * String converted to UTF-8. */ - function charset($data) { - return iconv($data, $this->format['db']['charset'], 'UTF-8'); - } + function charset(&$data) { + $data = iconv($this->format['db']['charset'], 'UTF-8', $data); + } } diff --git a/tests/csv.php b/tests/csv.php index 1d3c5cb..42e45f3 100644 --- a/tests/csv.php +++ b/tests/csv.php @@ -43,6 +43,11 @@ if ($isis->db) { // Format output. for ($n=1; $n <= $rows; $n++) { + // FIXME: fbe db corruption? + if ($n == 1494) { + continue; + } + $result = $isis->db->read($n); foreach ($format['fields'] as $field) { if (is_array($result[$field['name']])) { |