我运行与JavaScript的用strtolower()麻烦的Javascript用strtolower(),UFT8和(德国),特殊字符
var s = 'tür';
alert(s);
alert(s.strToLower());
应该产生相同的输出。然而输出是不同的:
1: tür
2: tã¼r
任何建议如何使用strToLower()正确处理uft8特殊?
马丁
我运行与JavaScript的用strtolower()麻烦的Javascript用strtolower(),UFT8和(德国),特殊字符
var s = 'tür';
alert(s);
alert(s.strToLower());
应该产生相同的输出。然而输出是不同的:
1: tür
2: tã¼r
任何建议如何使用strToLower()正确处理uft8特殊?
马丁
JavaScript的本地.toLowerCase()
方法处理UTF-8就好了:
alert("tür".toLowerCase());
您网页的编码可能需要设置为UTF-8头或meta
- 标签。
你试过了吗?警报(“İbranice,IRMAK”.toLowerCase()); --JS的本机完全不支持utf-8 – 2012-12-24 01:24:32
取决于浏览器和操作系统,但您的示例正如预期的那样工作:“大多数Unicode软件除非专门针对土耳其语设置,否则会降低i和大写字母我到I.因此,大写,小写,反之亦然,改变了字母。“ [来源](HTTP://en.wikipedia。组织/维基/虚线\ _and \ _dotless \ _ I) – RikkusRukkus 2012-12-24 09:12:51
有一个toLowerCase函数,它应该可以正常工作,因为Javascript在内部使用UTF8。检查:
你有两个内置的函数来转换为小写:.toLowerCase()和.toLocaleLowerCase()。两者都应该适用于您提供的示例,但您需要确保已将源代码保存为UTF-8。确切的过程在很大程度上取决于您的IDE或编辑器。
此外,如果您的Web服务器将字符集附加到Content-Type标头,它不会受到伤害。
确保您使用的编码为“UTF-8无BOM”(在记事本++选项)工作,并添加文件<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
内<head>
我尝试和作品。
你的代码没有意义。如果您将tür
分配给一个字符串,那么您总是会收到tür
。您可能忽略了代码中的一个步骤,例如通过AJAX将字符串发送到服务器。要做到这一点,字符串必须进行编码,通常使用UTF-8,在这种情况下正确的编码是tür
,正如你所看到的。但是,如果服务器使用ISO-8859-1而不是UTF-8,那么它会认为你的原始字符串是tür
,并且会尝试按照描述将其小写为tã¼r
。当前端尝试将其解释为UTF-8时,这会造成问题。解决方案是确保服务器也使用UTF-8。
JavaScript没有'strToLower'函数。 PHP的确如此,并且快速搜索显示至少有一个人由于某种原因将其移植到了JavaScript中,但JavaScript本身并没有。 Chrome上的Firefox,Firefox或Opera,Windows 7上的IE9或Safari上的JavaScript函数“toLowerCase”[似乎没有表现出您提及的行为](http://jsbin.com/epefab)。 – 2012-04-03 09:55:22
你的页面被编码为utf8,但你的服务器错误地告诉它是ISO-8859-1。修复你的标题。 – georg 2012-04-03 09:59:53
标记为本地化 - 由于JavaScript没有此功能,并且您没有回复评论,所以任何人都无法说出这里发生了什么。 – 2012-05-07 21:15:18