aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jcmarsha@gmail.com>2014-01-15 20:50:17 -0800
committerjmarshallnz <jcmarsha@gmail.com>2014-01-15 20:50:17 -0800
commitdd2774f929685d31a4cc563255bbfd20843787bf (patch)
treec7a3a40e20faa6c6435b810bbfc058f44ee2fb55
parent59cf420c2390176f354dd94e5dccb3c6ff63801d (diff)
parent6a641bf832dc621f253d268b2d29b7766acd4085 (diff)
Merge pull request #4021 from Karlson2k/fix_scraper_break_utf8_01
Fix scraper errors with some special chars
-rw-r--r--xbmc/URL.cpp21
-rw-r--r--xbmc/addons/Scraper.cpp2
2 files changed, 9 insertions, 14 deletions
diff --git a/xbmc/URL.cpp b/xbmc/URL.cpp
index 07154fbd1a..eccc72fe6e 100644
--- a/xbmc/URL.cpp
+++ b/xbmc/URL.cpp
@@ -745,24 +745,21 @@ void CURL::Decode(CStdString& strURLData)
void CURL::Encode(CStdString& strURLData)
{
- CStdString strResult;
+ std::string strResult;
/* wonder what a good value is here is, depends on how often it occurs */
strResult.reserve( strURLData.length() * 2 );
- for (int i = 0; i < (int)strURLData.size(); ++i)
+ for (size_t i = 0; i < strURLData.size(); ++i)
{
- int kar = (unsigned char)strURLData[i];
- //if (kar == ' ') strResult += '+'; // obsolete
- if (isalnum(kar) || strchr("-_.!()" , kar) ) // Don't URL encode these according to RFC1738
- {
- strResult += kar;
- }
+ const char kar = strURLData[i];
+
+ // Don't URL encode "-_.!()" according to RFC1738
+ // TODO: Update it to "-_.~" after Gotham according to RFC3986
+ if (StringUtils::isasciialphanum(kar) || kar == '-' || kar == '.' || kar == '_' || kar == '!' || kar == '(' || kar == ')')
+ strResult.push_back(kar);
else
- {
- CStdString strTmp = StringUtils::Format("%%%02.2x", kar);
- strResult += strTmp;
- }
+ strResult += StringUtils::Format("%%%02.2x", (unsigned int)((unsigned char)kar)); // TODO: Change to "%%%02.2X" after Gotham
}
strURLData = strResult;
}
diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp
index b4684bcdd1..90fb81167b 100644
--- a/xbmc/addons/Scraper.cpp
+++ b/xbmc/addons/Scraper.cpp
@@ -572,8 +572,6 @@ std::vector<CScraperUrl> CScraper::FindMovie(XFILE::CCurlFile &fcurl, const CStd
if (!fFirst)
StringUtils::Replace(sTitle, '-',' ');
- StringUtils::ToLower(sTitle);
-
vector<CStdString> vcsIn(1);
g_charsetConverter.utf8To(SearchStringEncoding(), sTitle, vcsIn[0]);
CURL::Encode(vcsIn[0]);