2013-03-11 81 views
2

我在使用Qt 4.x的mac時遇到問題QUrl和編碼

我有一個mailto QURL,它有一個已編碼的正文組件。簡化IT:

mailto:?subject=Hello&body=Hello%2C%0A%0AYou%20have%20been%20invited 

我的問題是,編碼仍顯示郵件主體當我的默認應用程序啓動(試過多個電子郵件客戶端)。這適用於Windows,但在Mac上失敗。

有沒有辦法讓我的編碼轉化爲編碼字符爲電子郵件客戶端主體中的可讀文本?

回答

1

QUrl是越野車。沒有辦法繞過這個錯誤,而是直接去Cocoa。

void MyMacLaunchURLClass::LaunchURL(char * url) 
{ 
    NSString *urlStr = [NSString stringWithCString:url encoding:NSASCIIStringEncoding]; 
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlStr]]; 
} 

解決了這個錯誤。

2

還使用fromPercentEncoding將Qurl格式解碼爲清除字符串。

+0

不起作用。我在電子郵件正文中有一個「&」。它會截斷我的測試,當我點擊那個「& – JasonGenX 2013-03-11 20:16:32

+2

你只想解碼身體的值?試試這個QUrl :: decode'。 – omid 2013-03-11 20:38:03