summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGergely Imreh <imrehg@gmail.com>2009-09-09 20:01:54 +0200
committerLoui Chang <louipc.ist@gmail.com>2009-09-16 13:50:44 +0200
commit4d1eb4dd7ac631138af5e7391eda1d8f2829f555 (patch)
tree7e4e6aaf5075bc452863da4ae7122d92131ff128
parent1bf54a32c4f3f27ec6a72799d4ac651d22b77097 (diff)
downloadaur-4d1eb4dd7ac631138af5e7391eda1d8f2829f555.tar.gz
aur-4d1eb4dd7ac631138af5e7391eda1d8f2829f555.tar.xz
Fix: FS#15526 non-UTF8 character in rpc output
Currently AUR does not check the uploaded packages, whether they are correctly in UTF8 encoding. If there are fields (such as $pkgdesc) that contain such non-UTF8 characters, the rpc interface chokes on those fields: even if there's data successfully retrieved from the database, rpc returns "null". In an effort to make such errors in the PKGBUILDs debugged more easily, let's force rpc to have more useful output: try to convert non-UTF8 fields to UTF8. If it's a success, good. Partial success (some characters showing as \uXXXX) is ok. Failure results in error message printed to that field. Signed-off-by: Gergely Imreh <imrehg@gmail.com> Signed-off-by: Loui Chang <louipc.ist@gmail.com>
-rw-r--r--web/lib/aurjson.class.php9
1 files changed, 9 insertions, 0 deletions
diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
index ba6d628c..befb6397 100644
--- a/web/lib/aurjson.class.php
+++ b/web/lib/aurjson.class.php
@@ -139,6 +139,15 @@ class AurJSON {
if ( $result && (mysql_num_rows($result) > 0) ) {
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
+ foreach($row as $name => $value) {
+ $converted = utf8_encode($value);
+ if ($converted) {
+ $row[$name] = $converted;
+ }
+ else {
+ $row[$name] = "[PKGBUILD error: non-UTF8 character]";
+ }
+ }
return $this->json_results('info', $row);
}
else {