js简繁体切换代码&javascript在IE和Firefo x中兼容性问题

页面简繁体切换问题,花了两天终于搞定。

网上有两个版本的js代码

1.最常见的那个js文件在ff下面会有问题,原因是ff对childNode属性的支持有问题。版本一:js文件下载

页面代码:<a href=”#nogo” id=”StranLink”>简体</a>

2.还有一个不容易找到的版本,兼容性比较好,推荐。版本二:js文件下载

页面代码:<a id=”st” href=”javascript:st();void 0;” style=”cursor:pointer”>简体中文</a>

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

附:《javascript在IE和Firefo x中兼容性问题》

-、元素查找问题

1. document.all[name]

  (1)现有问题:Firefox不支持document.all[name]

  (2)解决方法:使用getElementsByName(name),getElementById(id)等来替代。

  (3) 在 IE 中,getElementsByName()、document.all[name] 均不能用来取得 div 元素(是否还有其它不能取的元素还不知道)。

2. 集合类对象问题

  (1)现有问题:IE中对许多集合类对象取用时可以用 (),但在Firefox只能用[]。

      如:IE中可以使用document.forms(“formName”)来返回名字为”formName”的Form,但在Firefox却行不通。

   (2)解决方法:使用[],上例中可以改为document.forms[“formName”]

3. HTML元素的ID在JavaScript可见

  (1)现有问题:IE中HTML元素中的ID可以作为document的下属对象变量名直接使用。在Firefox中不能。

  (2)解决方法:使用getElementById(“idName”)代替idName作为对象变量使用。

4. eval(idName)取得对象

  (1)现有问题:在IE中,利用eval(idName)可以取得ID为idName的HTML对象,在Firefox中不能。

  (2)解决方法:用 getElementById(idName) 代替 eval(idName)。

5. 变量名与某HTML对象ID相同

  (1)现有问题:在Firefox中,因为对象ID不作为HTML对象的名称,所以可以使用与HTML对象id相同的变量名,IE中不能。

  (2)解决方法:在声明变量时,一律加上var,以避免歧义,这样在IE中亦可正常运行。此外,最好不要取与HTML对象id相同的变量名,以减少错误。

 注:3、4和5都属于同一类的问题。

6. Frame

  (1)现有问题:在IE中可以用window.top.frameId和window.top.frameName来得到该Frame所代表的Window,Firefox中只能用window.top.frameName。

  (2)解决方法:将Frame的Id和Name设置成相同,使用window.top.frameName来访问Frame。

      另外,在mf和ie中都可以使用window.top.document.getElementById(“frameId”)来访问frame标签

并且可以通过window.top.document.getElementById(“testFrame”).src = ‘xx.htm’来切换frame的内容

也都可以通过window.top.frameName.location = ‘xx.htm’来切换frame的内容。

二、DOM操作

1. 设置元素的文本内容。

  (1)现有问题:IE使用innerText,而Firefox使用textContent来设置元素文本内容。

  (2)解决方法:如果文本内容不包含”<“和”>”等特殊字符,可以使用innerHTML。否则,可以使用:

        var child = elem.firstChild;

            if (child != null) elem.removeChild(child);

            elem.appendChild(document.createTextNode(content));

2. parentElement,parent.children

  (1)现有问题:IE可以使用parentElement获得父结点,parent.children得到结点的所有孩子结点。Firefox不支持。

  (2)解决方法:使用parentNode和parent.childNodes。

3. 对childNodes的解释。

  (1)现有问题:IE和Firefox中对childNodes的解释不同,IE不会包含空白文本结点,而Firefox会包含。

  (2)解决方法:使用childNodes过滤文本结点,如下:

      var children = elem.childNodes;

          for (i = 0; i < children.length; i++) {

            if (children[i].nodeType != 3) { // 过滤文本结点

              // …

            }

          }

4. 对document.getElementsByName的解释。

  (1)现有问题:IE中getElementsByName只会检查<input>和<img>元素,而在Firefox下会检查所有元素。

  (2)解决方法:不要使用getElementsByName检查除<input>和<img>之外的元素,如果要获得单个元素,尽量使用getElementById。如果是别的元素用getElementById也可以获得元素数组。

5. 对document.getElementById的解释。

  (1)现有问题:IE中getElementById不仅检查Id属性,也会检查Name属性,当Name属性匹配参数时也会返回该元素。而在Firefox中只会检查Id属性。

  (2)解决方法:尽量保持Id和Name相同,不要让一个元素name属性和另一个元素的id属性相同。

三、事件

1. event.x与event.y问题

  (1)现有问题:在IE中,event对象有x,y 属性,Firefox中没有。

  (2)解决方法:在Firefox中,与event.x 等效的是 event.pageX。可以使用:

      mX = event.x ? event.x : event.pageX;

  (3) event.layerX 在 IE 与 MF 中都有,具体意义有无差别尚未试验。

2. window.event

  (1)现有问题:使用window.event无法在Firefox上运行

  (2)解决方法:原代码(可在IE中运行):

 <input type=”button” name=”someButton” value=”提交” onclick=”javascript:gotoSubmit()”/>

<script language=”javascript”>

function gotoSubmit() {

alert(window.event);    // use window.event

}

 </script>

 新代码(可在IE和Firefox中运行):

<input type=”button” name=”someButton” value=”提交” onclick=”javascript:gotoSubmit(event)”/>

<script language=”javascript”>

 function gotoSubmit(evt) {

 evt = evt ? evt : (window.event ? window.event : null);

  alert(evt);             // use evt

 }

 </script>

3. attachEvent和addEventListener

  (1)现有问题:IE中使用attachEvent来添加事件,Firefox中使用addEventListener。

  (2)解决方法:如下,注意事件参数的区别,一个是click,一个是onclick。

        if (document.attachEvent) document.attachEvent(“click”, clickHandler,false);

        else document.addEventListener(“onclick”,clickHandler);

四、语法

1. const

  (1)现有问题:在IE中不能使用const关键字。如const constVar = 32;在IE中这是语法错误。

  (2)解决方法:不使用const,以var代替。

2. 多余的逗号

  (1)现有问题:firefox中对象文字常量容许多余的逗号,在IE中不允许。下面语句在IE中非法。

      var obj = { ‘key’ : ‘aaa’, }

  (2)解决方法:去掉多余逗号。

五、XML

1. 创建XMLHttpRequest

  (1)现有问题:Firefox使用XMLHttpRequest,IE使用ActiveXObject。

  (2)解决方法:

      if (window.XMLHttpRequest) {

          req = new XMLHttpRequest();

      } else if (window.ActiveXObject) {

          req = new ActiveXObject(“Microsoft.XMLHTTP”);

      }

2. 创建DOM

  (1)现有问题:Firefox和IE创建DOM的方式不同。

  (2)解决方法:

        function createXmlDom() {

          var oXmlDom;

          if (Window.ActiveXObject) { // IE

            oXmlDom = new ActiveXObject(“Microsoft.XmlDom”);

          } else {  // Firefox

            oXmlDom = document.implementation.createDocument(“”, “”, null);

          }

        }

3. 加载XML

  (1)现有问题:如果要加载外部文件IE和Firefox都可以用:

          oXmlDom.async=false;      // 这在Firefox中是必须的

          oXmlDom.load(“test.xml”);

     但是它们加载xml字符串的方式不一样,IE中直接可以使用oXmlDom.loadXML(“<root><child/></root>”),而Firefox要使用DOMParser:

        var oParser = new DOMParser();

          var oXmlDom = oParser.parseFromString(“<root/>”, “text/xml”);

  (2)解决方法:比较好的方法是给Firefox产生的XMLDom加上loadXML方法:

        if (isFirefox) { // 需要浏览器检测

          Document.prototype.loadXML = function(sXml) {

            var oParser = new DOMParser();

            var oXmlDom = oParser.parseFromString(sXml, “text/xml”);

            while (this.firstChild) this.removeChild(this.firstChild);

            for (var i = 0; i < oXmlDom.childNodes.length; i++) {

              var oNewNode = this.importNode(oXmlDom.childNodes[i], true);

              this.appendChild(oNewNode);

            }

          }

        }

      这样在IE和Firefox就可以调用loadXML方法了。

4. XPath支持

  (1)现有问题:IE中可以直接用XmlDOM的selectNodes来根据XPath表示式来选择结点,Firefox则比较复杂,需要使用XPathEvaluator。

     IE:

        var lstNodes = oXmlDom.documentElement.selectNodes(“employee/name”);

        for (var i = 0; i < lstNodes.length; i++) {

          alert(lstNodes[i].firstChild.nodeValue);

        }

     Firefox:

          var oEvaluator = new XPathEvaluator();

          var oResult = oEvaluator.evaluate(“employee/name”, oXmlDom.documentElement, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

          var oElement = oResult.iterateNext();

          while (oElement) {

            alert(oElement.firstChild.nodeValue);

            oElement = oResult.iterateNext();

          }

  (2)解决方法:比较好的方法给Firefox的Element添加selectNodes方法。

        if (isFirefox) { // 需要浏览器检测

            Element.prototype.selectNodes = function(sXPath) {

            var oEvaluator = new XPathEvaluator();

              var oResult = oEvaluator.evaluate(sXPath, this, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

              var aNodes = new Array();

              if (oResult != null) {

                var oElement = oResult.iterateNext();

                while (oElement) {

                  aNodes.push(oElement);

                  oElement = oResult.iterateNext();

                }

              }

              return aNodes;

           }

      }

   这样在IE和Firefox中就都可以调用selectNodes方法了。

5. XSLT支持

  (1)现有问题:IE中可以使用XmlDOM的transferNode方法将其转换成html,而Firefox需要使用XSLTProcessor。

  IE:

        oXmlDom.load(“employee.xml”);

        oXslDom.load(“employee.xslt”);

        var sResult=oXmlDom.transformNode(oXslDom);

    Firefox:

        var oProcessor = new XSLTProcessor();

        oProcessor.importStylesheet(oXslDom);

        var oResultDom = oProcessor.transformToDocument(oXmlDom);       

        var oSerializer = new XMLSerializer();

        var sXml = oSerializer.serializeToString(oResultDom, “text/xml”);

        alert(sXml);

  (2)解决方法:比较好的方法给Firefox的Node添加transferNode方法。

        if (isFirefox) { // 需要浏览器检测

          Node.prototype.transformNode = function(oXslDom) {

          var oProcessor = new XSLTProcessor();

            oProcessor.importStylesheet(oXslDom);

            var oResultDom = oProcessor.transformToDocument(oXmlDom);

            var oSerializer = new XMLSerializer();

            var sXml = oSerializer.serializeToString(oResultDom, “text/xml”);

            return sXml;

          }

        }

   这样在IE和Firefox中就都可以调用transferNode方法了。

6. 在Firefox中,自己定义的属性必须getAttribute()取得

7.在Firefox中没有  parentElement parement.children  而用

               parentNode parentNode.childNodes

   childNodes的下标的含义在IE和MF中不同,Firefox使用DOM规范,childNodes中会插入空白文本节点。

  一般可以通过node.getElementsByTagName()来回避这个问题。

   当html中节点缺失时,IE和Firefox对parentNode的解释不同,例如

   <form>

   <table>

        <input/>

   </table>

   </form>

   Firefox中input.parentNode的值为form, 而IE中input.parentNode的值为空节点

 Firefox中节点没有removeNode方法,必须使用如下方法 node.parentNode.removeChild(node)

8. body 对象

   Firefox的body在body标签没有被浏览器完全读入之前就存在,而IE则必须在body完全被读入之后才存在

9. url encoding

在js中如果书写url就直接写&不要写&amp;例如var url = ‘xx.jsp?objectName=xx&amp;objectEvent=xxx’;

frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器

一般会服务器报错参数没有找到

当然如果是在tpl中例外,因为tpl中符合xml规范,要求&书写为&amp;

一般Firefox无法识别js中的&amp;

10. nodeName 和 tagName 问题

  (1)现有问题:

     在Firefox中,所有节点均有 nodeName 值,但 textNode 没有 tagName 值。在 IE 中,nodeName 的使用好象

     有问题(具体情况没有测试,但我的IE已经死了好几次)。

  (2)解决方法:

     使用 tagName,但应检测其是否为空。

11. 元素属性

   IE下 input.type属性为只读,但是Firefox下可以修改

勳章中心6.0[UTF-8]勳章自動回收解決辦法

引用地址:http://coz.tw/dz6/thread-11154-1-1.html

一開始小弟從安裝勳章中心6.0[UTF-8]插件到使用上都很順利
不過一到隔天就發現勳章自動回收
購買當時所使用的金錢也隨之消失
至後台查看勳章紀錄
會顯示某會員使用勳章中心來回收
不過各位大大不須煩惱
安全性並沒出問題
純粹是插件本身的BUG….

因為勳章中心插件本身可省去管理者人工頒發的困擾
對會員的自由性也提高非常多
所以應該會造成許多使用此插件的站長們很頭大
小弟花了3天測試更改此BUG的效果
終於給小弟成功解決
在此雙手奉上與各位大大們分享
解決方法↓

在plugins\medalcenter\medalcenter.func.php文件:
搜索:

if(!function_exists('array_combine')) {         function array_combine($keys, $values) {                 $result = array();                 if(is_array($keys) && is_array($values)) {                                                if(count($keys) >= count($values)) {                                 foreach($values as $value) {                                         $key = $key ? next($keys) : current($keys);                                         $result[] = array_combine($key, $value);                                 }                                                        } else {                                 foreach($keys as $key) {                                         $value = $value ? next($values) : current($values);                                         $result[] = array_combine($key, $value);                                 }                         }                                        } elseif(!is_array($keys) && !is_array($values)) {                         $keys = is_string($keys) ? '\''.addcslashes($keys, '\'\\').'\'' : $keys;                         $values = (!preg_match("/^\-?[1-9]\d*$/", $values) || strlen($values) > 12) ? '\''.addcslashes($values, '\'\\').'\'' : $values;                         $result = array($keys => $values);                 } elseif(is_array($keys) && !is_array($values)) {                                                 foreach($keys as $key) {                                 $result[] = array_combine($key, $values);                         }                                        } elseif(!is_array($keys) && is_array($values)) {                                                                         foreach($values as $value) {                                 $result[] = array_combine($keys, $value);                         }                                        }                 return $result;         } }

替换成:

if(!function_exists('array_combine')) {
function array_combine($arr_key,$arr_val){
if( !is_array($arr_key) or !is_array($arr_val)){
    echo '<b>Warning</b>:    array_combine() expects all parameters to be array';
    return false;
}
if(count($arr_key) != count($arr_val)){
    echo '<b>Warning</b>:    array_combine() Both parameters should have an equal number of elements';
    return false;
}
$count = count($arr_key);
for($i=0;$i<$count;$i++){
    $key = $arr_key[$i];
    $val = $arr_val[$i];
    $arr_new[$key] = $val;
}
return $arr_new;
}
}

本來小弟以為改成上面方式就能解決
不過小弟等了一天
勳章中心還是很熱情的把勳章給回收了…
如果以上方法不能解決請繼續改下面的↓
上面改過的不需要再改回來
到medalcenter.func.php 找

if(is_array($uids)) { //array
                $where = 'WHERE m.uid in(\'' . implode('\', \'', $uids). '\')';
        } else {
                $where = 'WHERE m.uid = \'' . $uids .'\'';
                $medalids = array($medalids);
                $outtimes = array($outtimes);
        }

改成:

if(is_array($uids)) { //array
                $where = 'WHERE m.uid in(\'' . implode('\', \'', $uids). '\')';
        } else {
                $where = 'WHERE m.uid = \'' . $uids .'\'';
        }
        $medalids = array($medalids);
        $outtimes = array($outtimes);

把以上2個地方做一次改好
小弟測試成功沒問題
希望能對許多大大有所幫助:71:

XAMPP中Apache无法启动

引用地址:http://www.cnblogs.com/maliyahooo/archive/2010/02/04/1663515.html

    今天早上来公司,开电脑,我的电脑上安装的是XAMPP集成建站开发包,打开XAMPP控制面板,点击Apache的start按钮,却发现始终不出现那个绿底黑字的Running.怎么好端端的Apache突然启动不起来,昨天关机睡觉之前都好好的,过了一晚上就这样了,难道他和我一样最近比较劳累,到现在还没睡醒,赖床罢工了啊?当然了,这只是个玩笑话,出现了问题就要及时解决撒。

     开始分析问题解决问题。

     打开Aapche的日志文件error.log。发现有如下的错误日志记录

(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : make_sock: could not bind to address 0.0.0.0:443 no listening sockets available, shutting down Unable to open logs

大意是说443的端口被占用了,赶快google一下。找到了也出现过此类问题的人,借鉴了他的解决方法。
通过cmd命令行直接查看有无程序占用0.0.0.0:443:

1、运行cmd,然后输入netstat -ano,回车; 2、查看开头几行包含0.0.0.0:443的那一行最后的pid,为几个数字,把这几个数字记下来; 3、启动“任务管理器”——“进程”,在“工具栏”——“选择列”前面的框里打上勾; 4、然后找到与刚才那个pid对应的是哪个程序,很容易就会找到,就是它与0.0.0.0:443进行了绑定(bind);

原来进程VisualSVNServer.exe进程占用了0.0.0.0.0:443,我安装在xp下的SVN服务器。结束这个进程,再点击Apache的Start按钮,终于出现了那个绿底黑字的Running ,嘿嘿。

最后在这次解决问题的过程中使用了一个Windows的dos命令:netstat

在网上摘抄了这个命令的用法,记录下来,当作参考

netstat的全部参数及说明如下:
显示协议统计信息和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
  -a                    显示所有连接和监听端口。
  -b                    显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件
                         拥有多个独立组件,并且在这些情况下包含于创建连接或监听端口的组件序列
                         被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,
                         直到 TCP/IP 部分。注意此选项可能需要很长时间,如果没有足够权限,可能失败。
  -e                    显示以太网统计信息。此选项可以与 -s选项组合使用。
  -n                    以数字形式显示地址和端口号。
  -o                   显示与每个连接相关的所属进程 ID。
  -p proto          显示 proto 指定的协议的连接;proto 可以是
                        下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
                        如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议 之一:
                        IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
  -r                   显示路由表。
  -s                   显示按协议统计信息。默认地,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP
                        和 UDPv6 的统计信息; -p 选项用于指定默认情况的子集。
  -v                   与 -b 选项一起使用时将显示包含于为所有可执行组件创建连接或监听端口的组件。
  interval            重新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。按 CTRL+C 停止重新
                        显示统计信息。如果省略,netstat 显示当前配置信息(只显示一次)

他,叫工藤新一。 她,叫毛利兰。

他和她的第一次见面,他们还被彼此的父母抱在怀里。他们的父母在喝茶聊天。两个小精灵还说不出一句完整的句子,安静的看着对方,眨眨眼睛,默默的想:他/ 她是谁啊?他肥肥的小手扯着她粗粗短短手指。他们的父母笑了。 他,叫工藤新一。 她,叫毛利兰。

 

他和她上了同一所小学,只是在不同班级。他开始踢足球,她开始练习空手道。他们会一起上学,放学。背着小小的书包,有时会拉着彼此的手;他的手已经没有那么肉了,她的手指也开始有了些修长的影子。夕阳照着他们,影子拖的长长的。说不出的温馨。 他,有个有些稚气的名字,叫工藤新一。 她,有个很可爱的名字,叫毛利兰。

 

他和她又到了同一所中学。他的足球踢的越来越好,她的空手道也越来越厉害了。他们还是会一起上学,放学。书包不再是双肩的而换成了成熟一些的单肩包,他们不太会拉着彼此的手,只是偶尔过马路的时候,他会习惯性的去抓她的手,过马路之后便尴尬的放开。夕阳照着他们。虽然他们之间有些距离,可是那画面说不出的完满。 他,有个体贴的名字,叫工藤新一。 她,有个温柔的名字,叫毛利兰。

 

他和她从高一升到高二。他成了日本警察的救世主;她的名字也出现在了更多的空手道大赛上。他开始收到很多女生写的情书,他会得意的拿给她看,看着她皱着眉:“你就不会找个女孩认真交往一下么?”然后他的心里有了一丝失落,因为,他喜欢上了她。她开始有了些男生追,她都认真的拒绝,她看着他收到的情书,心里有了一丝疼痛,因为,她喜欢上了他。他爱上了她,却没有勇气说出口;她爱上了他,却没有胆量说出口。 他,有个胆怯的名字,叫工藤新一。 她,有个胆小的名字,叫毛利兰。

 

他和她去游乐场。他在讲他的福尔摩斯,她带点不耐烦的听着。他们玩遍了整个游乐场,他还解决了一起谋杀案。就在他们要回家的时候,他似乎发现了什么让他感兴趣东西,挥手叫她先回去。她回去了,她有种不好的预感。他从他生活里消失了。没有了轮廓,只有他温暖一如从前的声音,阁段时间就从那跟细细的电话线里传过来。他挂了电话后靠在电话庭门外叹气,原来,她是喜欢他的。她挂了电话后安静的哭了,他不知道她喜欢他么? 他,有了另一个名字,叫江户川柯南。 她,有个让人心痛的名字,叫毛利兰。

 

他和她还是在一起,只是她不知道。十七岁的他不见了,七岁的他代替十七岁的他依旧守护着她。每天他和她还是会在一起,只是他多了一分压力,他要捣毁那个把他弄成七岁的组织,然后亲口告诉她,他爱她,一直都爱她。她还是带着微笑生活,只是那微笑里多了一丝疲惫,她相信他一定会回到她身边,然后她会告诉他,她爱他,一直都是爱着他。 他,有个会装可爱的名字,叫江户川柯南,也叫工藤新一。 她,有个习惯了等待的名字,叫毛利兰。

 

他和她还是平淡的生活在一起。他习惯了叫她“姐姐”;习惯了让她帮他擦去吃饭时沾上嘴角的饭粒;习惯了看着她的笑容;习惯了让她照顾,但他明白,总有一天,真正的他会回来,回来照顾她。她习惯了身边多了一个稚气的声音叫自己“姐姐”;习惯了看着他一脸笑容的吞下自己做的晚饭;习惯了看着他可爱的笑容;习惯了照顾他,可是,又有谁知道,她也希望以前的那个他能回来照顾她? 他,有个会隐藏自己的名字,叫江户川柯南,也叫工藤新一。 她,有个如同天使般的名字,叫毛利兰。

 

他和她分开了。他开始一个人努力侦察关于组织的一切,离开她,因为不想她有任何危险。她又要开始让自己习惯,习惯没有十七岁的他,也没有七岁的他,让自己独自生活。早上起来一个人刷牙,可还是多挤了一份牙膏;做自己的早饭,可还是习惯性的按照营养搭配多走了一份早饭……然后,她慢慢习惯了没有他的轮廓,也没有他的声音。 他,有了个勇敢的名字,叫江户川柯南,也叫工藤新一。 她,有了个孤寂的名字,叫毛利兰。

 

“后来呢?后来呢?” “后来怎么了?” 稚气的童声围绕着她,追问着故事的结局。他走向她:他回来了,带着坚定的微笑,用不容置疑的口气对她说:我爱你,让我照顾你。她愣了;他笑了;她哭了;他慌了,擦去她的泪水;她又笑了,放心的笑;他也笑了,安心的笑。从此以后,他们幸福的生活在一起。 他,有个幸福的名字,叫工藤新一。 她,有个幸福的名字,叫毛利兰,哦,不对,是工藤兰。

古人的英文名,当时我就震惊了

孔子,名仲尼——Johnny;

曹操,字孟德——McDonald;

杜甫,字子美—— Jimmy;

韩愈,号昌黎——Charlie;

狄仁杰——Roger;

苏轼——Susan;

王安石,字介甫——Jeff;

唐寅——Tony;

李世民—— Simon;

李白,字太白—— T-bag

桀: Jack;

汤: Tom;

纣: Jill;

姜太公,吕尚OUIS JEAN(法文);

刘邦: Louis Bond;

汉武帝: Woody;

乾隆,弘历: Ronny;

孟子,名轲,英文名:Micheal,希腊名:孟修斯;

李煜—Levis;

蒋中正,字介石——Jason;

马英九——Angel;

韩乔生——Johnson;

周润发发哥——Fuck。

金正日——KING FUCKING