2012-05-30 50 views
4

在外部JavaScript文件中,我有一個函數用於將文本追加到表單元格(在JavaScript文件添加到的HTML文檔中),有時可以包含芬蘭字符的文本(如ä) 。這個文本作爲參數傳遞給我的功能:Javascript字符編碼

content += addTableField(XML, 'Käyttötarkoitus', 'purpose', 255); 

的問題是,變音符號,如「A」地轉化爲其他一些虛假的字符,如「」。我在瀏覽器中查看HTML文檔時看到了這一點。這顯然是不可取的,而且很奇怪,因爲HTML文檔的字符編碼是UTF-8。

我該如何解決這個問題?

在此先感謝您的幫助!

+1

你的所有文件(包括js之一)都以UTF-8格式嗎?請注意,某些服務器(如某些tomcat版本)可能會破壞您的js編碼。 –

+0

我不知道。我不知道如何找出... –

+1

[UTF-8通過所有方式](http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – bostaf

回答

4

包含content += addTableField(XML, 'Käyttötarkoitus', 'purpose', 255);的文件不保存爲UTF-8編碼。

我不知道你在使用什麼編輯器,但你可以在設置或保存對話框中找到它。

例子:

如果你不能得到這個工作,你總是可以在JavaScript寫出來的文字代碼點:

content += addTableField(XML, 'K\u00E4ytt\u00f6tarkoitus', 'purpose', 255); 

信用:triplee

+1

在任何情況下,您都可能想使用「K \ u00E4ytt \ u00F5tarkoitus」來實現可移植性,儘管它很難讀也很難讀。 – tripleee

+0

@tripleee謝謝,我編輯它。順便說一句''ö「'是''\ u00f6'':P – Esailija

+0

請原諒我的馬虎打字,謝謝( - : – tripleee

0

HTML文件/ doc的字符編碼與任何外部資源無關。

您需要傳遞帶有UTF8字符編碼的腳本文件。如果它保存爲這樣,你的服務器配置是假的。

1

要檢查出由服務器公佈的字符編碼,你可以使用Firebug(在信息菜單,還有觀看HTTP頭指令)。或者,您可以使用在線服務,如Web-Sniffer

如果外部.js文件頭指定一個字符集參數,你需要使用的編碼,除非你可以改變相關的服務器設置(可能是.htaccess文件)。

如果他們缺乏一個charset參數,你可以指定script元素,例如編碼<script src="foo.js" charset="utf-8">

聲明的編碼當然應該與實際的編碼相匹配,當您保存文件時(通過使用「另存爲」命令),您通常可以選擇該編碼。