2010-04-26 72 views
0

我有一個包含用戶名的ISO-8859-1編碼文本字段的MySQL數據庫表。當我使用PHP將其導出到文本文件時,我會在客戶端計算機上獲取正常的文本文件。當我在Windows系統的Word或Excel中打開它時,它看起來不錯。當我使用Word或Excel在Mac上打開它時,高級ASCII字符是錯誤的。ISO-8859-1和MacRoman編碼

我知道這是由於Mac使用MacRoman和Windows使用ISO-8859-1。我的問題是,我該如何編寫一個文本文件,這個文件可以在兩個平臺上打開,而且兩者都很好?

是否有一些XML varian,我可以環繞文字,將線索Word的事實,它是ISO-8859-1編碼?我可以在TXT文件中使用什麼魔法粉塵來向操作系統提供使用其他編碼方案的事實?

回答

2

...我得到保存在客戶端計算機

你甚至可以在一個特定的編碼文本上一個普通的文本文件。我們假設它是ISO-8859-1。

我知道這是由於Mac使用MacRoman和Windows使用ISO-8859-1。我的問題是,我該如何編寫一個文本文件,這個文件可以在兩個平臺上打開,而且兩者都很好?

打開文本文檔的軟件必須知道字符集編碼。有時候,它可以使用一些啓發式來猜測它,有時它不會嘗試猜測(並使用它自己的默認值),有時候可以讓他問你使用什麼編碼。 See here

只要我們說純文本文件,沒有一種通用的方法可以保證每個用戶都能以正確的編碼打開它。在一些其他格式(例如HTML)中,編碼可以被指定爲文檔本身的一部分。

+0

我想我正在尋找一些「非純」的文本文件格式。 XML,MIME等。兩種平臺上的Word/Excel都能正確讀取的一些常見格式。與HTML中的charset meta標籤相關的信息。 – 2010-04-26 19:44:54

+1

我認爲如果你把它轉換成UTF-8編碼,那麼大多數softwtare都會檢測到它。 如果沒有,您可以隨時將其封裝在帶有字符集規範和PRE標籤的html頁面中......這取決於您的場景(它是一個自動化過程嗎?必須由「內部」人員讀取嗎?演示文稿,等等) – leonbloy 2010-04-26 19:49:50