2013-06-27 123 views
0

我正在製作一個web服務,需要在Windows/DotNet RichTextBox中創建/操作客戶端使用的富文本。 該服務的用戶將來自世界各地。RichTextBox全球化

該服務接受客戶端從RichTextBox.Rtf提供的字符串,進行一些操作並向客戶端返回字符串,該字符串放回到文本框的Rtf字段中。

工作正常,但我對全球化的一些擔憂,例如..

我的開發機器上出現一個空的RichTextBox有RTF爲:

{\rtf1\ansi\ansicpg1252\deff0\deflang1044{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}} 
\viewkind4\uc1\pard\f0\fs17\par 
} 

當創建一個新的記錄,服務需要提供一些默認的格式化文本。 我假設某人在他們的操作系統安裝上有不同的語言,將會爲默認的空RichTextBox使用不同的字體,ansicodepage和deflang。 所以我發現我可以提供以下字符串的新紀錄沒有得到一個格式異常...

{\rtf1\ansi\viewkind4\uc1\pard\f0\fs17 MyTextGoesHere\par} 

設置RichTextBox.Rtf以上後,然後我檢查RTF,發現它已重新插入的字體和defLang的如下...

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}\viewkind4\uc1\pard\lang1044\f0\fs17 MyTextGoesHere\par} 

問題:

1>我應該擔心這個或我必須保持我的服務剝離出來?

2>剝離它是否安全?客戶是否仍然能夠在文中使用他們的語言中的字符?

3>它是跨語言兼容嗎?如果我使用不同於其他用戶的操作系統/語言查看Richtext,它會看起來正常嗎?

任何recomendations或指針?

+0

它很*不清楚爲什麼你擔心字體。這只是影響文本格式*的標記,而不影響文本的*含義*。格式化適用於人眼,而非機器。當然你的服務只關心在文本中編碼的信息,而不是它看起來像什麼?即使你傳輸RTF,你仍然可以使用接收端的Text屬性來找出它的含義。或者你只是不打擾和傳輸文本。 –

+0

我最擔心的是,用另一種語言創建的另一用戶創建的客戶端查看文本時,如果他們嘗試查看它,它會得到某種格式異常。次要擔心是它看起來像完全垃​​圾,並認爲我的服務/應用程序出了問題。 – Dorf

+0

不會有任何格式異常,每個人都使用相同的RTB和RTF。它對中國人來說就像中國人。 –

回答

0

我想我會問用戶他想要的Rtf(由他的本地操作系統RichTextBox提供)以用於創建新記錄時。然後只是假設它是空的,並在最後粘貼我的東西。