Browse Source

utf8 routines. should be clean up

Maxim Sokhatsky 11 years ago
parent
commit
f9a2298a04

+ 1 - 0
apps/web/priv/static/app/index.htm

@@ -4,6 +4,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width">
     <meta name="viewport" content="initial-scale=1, user-scalable=no">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Kakaranet Okey</title>
     <link href='http://fonts.googleapis.com/css?family=Exo+2:600' rel='stylesheet' type='text/css'>
     <link href="css/main.css" rel="stylesheet" type="text/css" />

+ 24 - 1
apps/web/priv/static/app/js/bert.js

@@ -158,4 +158,27 @@ function utf8toByteArray(str) {
                 byteArray.push(parseInt(h[j], 16));
         }
     return byteArray;
-};
+}
+
+function utf8decode(utftext) {
+        var string = "";
+        var i = 0;
+        var c = c1 = c2 = 0;
+        while ( i < utftext.length ) {
+            c = utftext.charCodeAt(i);
+            if (c < 128) {string += String.fromCharCode(c); i++;}
+            else if((c > 191) && (c < 224)) {
+                c2 = utftext.charCodeAt(i+1);
+                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
+                i += 2;
+            }
+            else {
+                c2 = utftext.charCodeAt(i+1);
+                c3 = utftext.charCodeAt(i+2);
+                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
+                i += 3;
+            }
+
+        }
+        return string;
+    }

+ 2 - 3
apps/web/priv/static/app/js/roster.js

@@ -43,10 +43,9 @@ function RosterHandlers(scope) {
         var from = dec(e.raw).value[0][1].value[0][0].value,
             names = dec(e.raw).value[0][1].value[0][1].value,
             to = dec(e.raw).value[0][2].value,
-            message = dec(e.raw).value[0][3];
+            message = dec(e.raw).value[0][3].value;
         console.log("Income");
-        console.log(message);
-        chatMessage(currentChat,"1",from==document.user?"Self":from,/*names+":\n"+*/message);
+        chatMessage(currentChat,"1",from==document.user?"Self":from,utf8decode(message).encodeHTML());
         onlineHover();
         mouseWheelHandler({'detail':-10000,'wheelDelta':-10000});
         onlineHoverOut();

+ 1 - 1
apps/web/src/okey.erl

@@ -254,7 +254,7 @@ event(pause) ->
 
 event({client,{message,From,Name,To,Message}}) ->
     wf:info(?MODULE,"Chat Message from ~p(~p) to ~p:~n ~p~n",[From,Name,To,Message]),
-    wf:send(To,{server,{chat_message,{From,Name},To,Message}}),
+    wf:send(To,{server,{chat_message,{From,Name},To,wf:to_binary(Message)}}),
     ok;
 
 event({client,Message}) ->