Revision: 11504
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=11504&view=rev
Author: amaxwell
Date: 2007-11-09 09:34:57 -0800 (Fri, 09 Nov 2007)
Log Message:
-----------
Use NSURLConnection to download from Google Scholar, and read the encoding name
from the response so we know exactly what's going on.
Modified Paths:
--------------
trunk/bibdesk/BDSKGoogleScholarParser.m
Modified: trunk/bibdesk/BDSKGoogleScholarParser.m
===================================================================
--- trunk/bibdesk/BDSKGoogleScholarParser.m 2007-11-09 17:07:51 UTC (rev
11503)
+++ trunk/bibdesk/BDSKGoogleScholarParser.m 2007-11-09 17:34:57 UTC (rev
11504)
@@ -74,6 +74,8 @@
NSArray *BibTeXLinkNodes = [[xmlDocument rootElement]
nodesForXPath:BibTexLinkNodePath
error:&error];
+
+
unsigned int i;
for(i=0; i < [BibTeXLinkNodes count]; i++){
@@ -85,9 +87,32 @@
NSURL *btURL = [NSURL URLWithString:[NSString
stringWithFormat:@"http://[EMAIL PROTECTED]@", [url host], hrefValue]];
- NSString *bibTeXString = [NSString stringWithContentsOfURL:btURL
-
encoding:NSUTF8StringEncoding
- error:&error];
+ NSURLRequest *request = [NSURLRequest requestWithURL:btURL];
+ NSURLResponse *response;
+
+ NSData *theData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:&error];
+ NSString *bibTeXString = nil;
+
+ // google actually provides this information; on my system it returns
"macintosh" which gets converted to NSMacOSRomanStringEncoding
+ if (nil != theData) {
+
+ NSString *encodingName = [response textEncodingName];
+ NSStringEncoding encoding = kCFStringEncodingInvalidId;
+
+ if (nil != encodingName)
+ encoding =
CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName));
+
+ if (encoding != kCFStringEncodingInvalidId)
+ bibTeXString = [[NSString alloc] initWithData:theData
encoding:encoding];
+ else
+ bibTeXString = [[NSString alloc] initWithData:theData
encoding:NSUTF8StringEncoding];
+
+ if (nil == bibTeXString)
+ bibTeXString = [[NSString alloc] initWithData:theData
encoding:NSISOLatin1StringEncoding];
+
+ [bibTeXString autorelease];
+ }
+
BOOL isPartialData = NO;
NSArray* bibtexItems = nil;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit