當我在運行時將網頁中的單詞「Çamlık」複製到富文本框(表單應用程序)中時,它會顯示爲「?aml?k」。在RichTextBox控件或窗體或應用程序中是否有設置來解決此問題?如果不是,什麼是「社會可接受的」方法?富文本框字符集
(.Net 2008)
當我在運行時將網頁中的單詞「Çamlık」複製到富文本框(表單應用程序)中時,它會顯示爲「?aml?k」。在RichTextBox控件或窗體或應用程序中是否有設置來解決此問題?如果不是,什麼是「社會可接受的」方法?富文本框字符集
(.Net 2008)
我認爲這可能是由於richtextbox上的字體設置,它似乎不支持您粘貼的字符範圍。
嘗試將字體設置爲支持unicode範圍的字符的東西,您正在粘貼。試試Arial Unicode MS &看看是否有效。
編輯:在附註中,您正在複製文本的網站是否有unicode中的內容?
網站可能會使用ASCII &中的文本使用特定字體爲特定語言呈現該文本。
您的文本框使用什麼字體?當我使用的默認字體在一個很小的測試程序,它工作正常:
using System.Windows.Forms;
class Test
{
static void Main()
{
RichTextBox tb = new RichTextBox();
Form form = new Form();
form.Controls.Add(tb);
Application.Run(form);
}
}
這從Chrome中切上Vista和粘貼到編輯,並通過命令行運行上面的程序。
您是否在粘貼後立即得到問號?你的文本框中是否有其他處理?上述計劃對你做了什麼?你正在使用哪種瀏覽器?
我正在使用richtextbox而不是文本框控件。而且我只是用另一個網站重新嘗試了一次,並且它工作正常。顯然它取決於html字符集。我會看看我能否縮小這個範圍。 – xpda 2009-09-20 18:58:07
好吧,我開始懷疑健怡可樂的幻覺效果。我發現維基百科上的原始文本(http://en.wikipedia.org/wiki/TCDD_5701_Class),再次粘貼,現在它工作正常,沒有問號。它也可以在一個普通的文本框中使用,儘管我之前沒有嘗試過。 爲了記錄,我使用Firefox 3.5.3。它在粘貼後立即發生,並且在富文本框中沒有其他處理。自從最初的出現以來沒有任何東西被重置,甚至沒有瀏覽器或對比也許我會把它歸結爲瀏覽器的怪異。 – xpda 2009-09-20 19:08:15
編輯我的示例更合適。仍然不能重現,雖然...很奇怪。 – 2009-09-20 19:17:36
如果您有自定義粘貼方法,請確保粘貼爲DataFormats.UnicodeText而不是DataFormats.Text;因爲後者只是ANSI,它會給你'?'字符作爲Unicode字符的替代品。
我不確定真正的答案是(是),但我會選擇這個作爲「答案」,因爲有很好的建議。 – xpda 2009-09-20 20:17:10