Fix Unicode in Site names

Manually handle Unicode with services the same way we do in
HttpClientImpl.issueGetRequest().
diff --git a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
index 5d9b899..438281d 100644
--- a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
+++ b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
@@ -2152,24 +2152,30 @@
           new QName(XMLNS, "People"));
     }
 
+    private static String handleEncoding(String endpoint) {
+      // Handle Unicode. Java does not properly encode the POST path.
+      return URI.create(endpoint).toASCIIString();
+    }
+
     @Override
     public SiteDataSoap newSiteData(String endpoint) throws IOException {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(SharePointAdaptor.spUrlToUri(endpoint).toString()).build();
+          .address(handleEncoding(SharePointAdaptor.spUrlToUri(endpoint)
+            .toString())).build();
       return siteDataService.getPort(endpointRef, SiteDataSoap.class);
     }
 
     @Override
     public UserGroupSoap newUserGroup(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return userGroupService.getPort(endpointRef, UserGroupSoap.class);
     }
     
     @Override
     public AuthenticationSoap newAuthentication(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return 
           authenticationService.getPort(endpointRef, AuthenticationSoap.class);
     }
@@ -2177,7 +2183,7 @@
     @Override
     public PeopleSoap newPeople(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return peopleService.getPort(endpointRef, PeopleSoap.class);      
     }
   }