2010-05-12 86 views
1

我需要在我的JavaScript內創建一個EBCDIC字符串並將其保存到EBCDIC數據庫中。 EBCDIC系統上的一個流程然後使用這些數據。在我遇到角色'¬'之前,我一直沒有遇到任何問題。在EBCDIC中,它是十六進制值5F。所有通常的字母和符號都會自動轉換而不會出現問題。任何想法如何我可以在JavaScript中創建'¬'的EBCDIC值,以便我可以將它正確地存儲在EBCDIC數據庫中?將EBCDIC字符插入到JavaScript字符串中

謝謝!

+0

數據從哪裏來?你使用什麼服務器端語言?你如何使用Javascript在數據庫中存儲數據? – 2010-05-12 13:43:20

+0

問題何時出現?客戶端或服務器端?你的數據如何在客戶端和服務器之間傳輸?你能解釋你的過程以及問題出現在哪裏嗎? – Alsciende 2010-05-12 13:47:07

+0

我正在用Javascript構造一個字符串,並將它傳遞給EBCDIC系統上的RPGLE程序(通過JDBC連接)。 RPGLE程序只是將數據寫入EBCDIC文件。我注意到寫入文件的字符通常與我在Javascript中指定的字符匹配,除了它是¬符號時。謝謝你的時間! – RobertParker 2010-05-12 14:26:28

回答

2

如果「所有通常的字母和符號似乎自動轉換」,那麼我非常強烈地懷疑您不必在Javascript中創建EBCDIC字符串。拉丁字母和數字的字符代碼在EBCDIC中完全不同於Unicode,因此服務器代碼中的某些內容已經在轉換字符串。

因此,您需要確定的是過程的工作原理,具體而言,您需要了解翻譯過程如何將Unicode源代碼中的字符代碼映射到EBCDIC等價物中。一旦你知道了,你就會知道在你的Javascript代碼中使用什麼Unicode字符。作爲一個進一步的說明:每一次我被一個IT組織告知,他們的大型機軟件要求以EBCDIC提供數據,那個建議就是錯誤的。事實上,有一些外部接口意味着構成主機的一堆鐵的東西,它的觸角,IT人員已經忘記了,可能找不到他們需要的東西,已經映射出「真實世界」特徵像Unicode一樣編碼到EBCDIC中。它是如何工作的?那麼,這可能是不可能的。

你可以試試這個工作是否:var notSign = "\u00AC";

編輯:也:這裏是爲HTML實體和Unicode字形一個很好的參考:http://www.elizabethcastro.com/html/extras/entities.html的HTML/XML語法使用十進制數的字符代碼。對於Javascript,您必須將它們轉換爲十六進制,並且Javascript字符串中的表示法是「\ u」,後跟一個4位十六進制常量。 (該參考文獻並不完整,但它很容易閱讀,並且有很多有用的符號。)

+0

在懷疑某個東西已經從Unicode轉換爲EBCDIC並且它只是沒有正確映射的符號時,您可能是正確的。不過,我想我會嘗試你的建議,並且幾乎可行。它給了我¬。我認爲Unicode存儲爲兩個字節,由於某種原因,在未符號前加上了十六進制62。 – RobertParker 2010-05-12 14:24:39

+0

奇怪。那麼,需要考慮的另一件事是,可以將您的客戶端的字符編碼發送回Web服務器,與其他一些Unicode或ISO編碼進行映射,*之前*將任何內容轉換爲EBCDIC。字符編碼問題是脖子上巨大的痛苦! – Pointy 2010-05-12 14:29:15

+0

我同意......頸部疼痛很大。謝謝你的時間。如果我找到一個有價值的解決方案,我一定會發布它。 – RobertParker 2010-05-12 14:40:28