String.fromCharCode((x>> y)| z)操作?

时间:2015-01-20 23:27:37

标签: javascript string utf-8 char fromcharcode

我一直在与网址和uri进行一些工作,我对我用来编码/解码的功能有疑问。

我已经在线查找,并找到了一个函数来正确编码我的代码,主要使用String.fromCharCode()方法。但问题是关于传递的参数。

我有这样的事情:

_utf8_encode : function (string) {
  string = string.replace(/\r\n/g,"\n");
  var utftext = "";
  for (var n = 0; n < string.length; n++) {
    var c = string.charCodeAt(n);
    if (c < 128) {
      utftext += String.fromCharCode(c);
    }
    else if((c > 127) && (c < 2048)) {
      utftext += String.fromCharCode((c >> 6) | 192);
      utftext += String.fromCharCode((c & 63) | 128);
    }
    else {
      utftext += String.fromCharCode((c >> 12) | 224);
      utftext += String.fromCharCode(((c >> 6) & 63) | 128);
      utftext += String.fromCharCode((c & 63) | 128);
    }
  }
  return utftext;
}

让我感到困惑的是,这些内容的操作。我已经用c值做了一些测试,看看我是否得出任何结论,但我的努力是徒劳的。有谁知道那些运营商(如果我可以称之为&#39;&gt;&gt;&#39;&#39;&amp;&#39;&#39; |&#39;)是什么意思?

请注意,该功能有效,我只想正确理解它。

非常感谢! 再见!

0 个答案:

没有答案