我遇到了JavaScripts strToLower()
的问题var s = 'tür';
alert(s);
alert(s.strToLower());
应该产生相同的输出。但是输出是不同的:
1: tür
2: tã¼r
如果使用strToLower(),如何正确处理uft8-special的任何建议?
马丁
答案 0 :(得分:3)
JavaScript的原生.toLowerCase()
方法处理UTF-8就好了:
alert( "tür".toLowerCase() );
您的网页编码可能需要设置为带标题或meta
标记的UTF-8。
答案 1 :(得分:0)
有一个toLowerCase函数,它应该正常工作,因为Javascript在内部使用UTF8。检查:
答案 2 :(得分:0)
您有两个内置函数可以转换为小写:.toLowerCase()和.toLocaleLowerCase()。两者都应该可以正常使用您提供的示例,但您需要确保已将源代码保存为UTF-8。确切的过程在很大程度上取决于您的IDE或编辑器。
此外,如果您的Web服务器将字符集附加到Content-Type标头,也不会受到影响。
答案 3 :(得分:0)
确保您使用的文件已编码为“无BOM的UTF-8”(Notepad ++中的选项),并在<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<head>
我尝试过并且工作。
答案 4 :(得分:0)
你的代码毫无意义。如果您将tür
分配给字符串,那么您将始终返回tür
。您可能省略了代码中的一个步骤,例如将字符串通过AJAX发送到服务器。为此,必须对字符串进行编码,通常使用UTF-8,在这种情况下,正确的编码是tür
。但是,如果服务器使用的是ISO-8859-1而不是UTF-8,那么它会认为您的原始字符串是tür
,并会尝试将其小写为tã¼r
,如上所述。当前端尝试将其解释为UTF-8时,这将导致问题。解决方案是确保服务器也使用UTF-8。