make tests platform file encoding sensitive
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
index c200d4c..b83b010 100644
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
+++ b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
@@ -60,6 +60,28 @@
 	}
 
 
+	// ********** file encoding **********
+
+	/**
+	 * Return whether the current file encoding is Microsoft Windows
+	 * (i.e. "Cp1252").
+	 */
+	public static boolean fileEncodingIsWindows() {
+		return fileEncoding().equals("Cp1252");
+	}
+
+	/**
+	 * Return whether the current file encoding is UTF-8.
+	 */
+	public static boolean fileEncodingIsUTF8() {
+		return fileEncoding().equals("UTF-8");
+	}
+
+	private static String fileEncoding() {
+		return System.getProperty("file.encoding");
+	}
+
+
 	// ********** O/S **********
 
 	/**
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
index 71ace40..1f44b51 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
@@ -9,8 +9,8 @@
  ******************************************************************************/
 package org.eclipse.jpt.common.utility.tests.internal;
 
-import java.util.Arrays;
 import junit.framework.TestCase;
+
 import org.eclipse.jpt.common.utility.internal.ByteArrayTools;
 
 @SuppressWarnings("nls")
@@ -30,16 +30,20 @@
 
 	public void testConvertToHexString_negative() throws Exception {
 		String s = "caf\u00E9"; // cafe'
-		assertEquals("636166E9", ByteArrayTools.convertToHexString(s.getBytes())); // UTF-8 values
+		assertEquals(this.getHexCafe(), ByteArrayTools.convertToHexString(s.getBytes()));
 	}
 
 	public void testConvertToHexCharArray() throws Exception {
 		String s = "test";
-		assertTrue(Arrays.equals("74657374".toCharArray(), ByteArrayTools.convertToHexCharArray(s.getBytes()))); // UTF-8 values
+		TestTools.assertEquals("74657374", ByteArrayTools.convertToHexCharArray(s.getBytes()));
 	}
 
 	public void testConvertToHexCharArray_negative() throws Exception {
 		String s = "caf\u00E9"; // cafe'
-		assertTrue(Arrays.equals("636166E9".toCharArray(), ByteArrayTools.convertToHexCharArray(s.getBytes()))); // UTF-8 values
+		TestTools.assertEquals(this.getHexCafe(), ByteArrayTools.convertToHexCharArray(s.getBytes()));
+	}
+
+	private String getHexCafe() {
+		return StringToolsTests.getHexCafe();
 	}
 }
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
index 38f9efc..6d15439 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
@@ -271,17 +271,21 @@
 
 	public void testConvertHexStringToByteArray_ok() throws Exception {
 		String s = "74657374"; // UTF-8 values
-		assertEquals("test", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+		TestTools.assertEquals("test", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
 	}
 
 	public void testConvertHexStringToByteArray_negative() throws Exception {
-		String s = "636166E9"; // UTF-8 values
-		assertEquals("caf\u00E9", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+		String s = this.getHexCafe();
+		TestTools.assertEquals("caf\u00E9", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
 	}
 
 	public void testConvertHexStringToByteArray_lowercase() throws Exception {
-		String s = "636166e9"; // UTF-8 values
-		assertEquals("caf\u00E9", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+		String s = this.getHexCafe().toLowerCase();
+		TestTools.assertEquals("caf\u00E9", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
+	}
+
+	private String getHexCafe() {
+		return StringToolsTests.getHexCafe();
 	}
 
 	// ********** convert camel-case to all-caps **********
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
index 476ae7e..c2c1d9b 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
@@ -286,7 +286,11 @@
 	}
 
 	public void testConvertToHexString_negative() {
-		this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+		this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+	}
+
+	private String getHexCafe() {
+		return StringToolsTests.getHexCafe();
 	}
 
 	private void verifyConvertToHexString(String expected, String string) {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
index 66dea42..4a8eb42 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
@@ -286,7 +286,11 @@
 	}
 
 	public void testConvertToHexString_negative() {
-		this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+		this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+	}
+
+	private String getHexCafe() {
+		return StringToolsTests.getHexCafe();
 	}
 
 	private void verifyConvertToHexString(String expected, String string) {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
index 195e081..1f12085 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
@@ -14,6 +14,7 @@
 import org.eclipse.jpt.common.utility.internal.ByteArrayTools;
 import org.eclipse.jpt.common.utility.internal.ObjectTools;
 import org.eclipse.jpt.common.utility.internal.StringTools;
+import org.eclipse.jpt.common.utility.internal.SystemTools;
 
 @SuppressWarnings("nls")
 public class StringToolsTests
@@ -318,15 +319,25 @@
 	}
 
 	public void testConvertHexStringToByteArray_negative() throws Exception {
-		String s = "636166E9"; // UTF-8 values
+		String s = getHexCafe();
 		assertEquals("caf\u00E9", new String(StringTools.convertHexStringToByteArray(s)));
 	}
 
 	public void testConvertHexStringToByteArray_lowercase() throws Exception {
-		String s = "636166e9"; // UTF-8 values
+		String s = getHexCafe().toLowerCase();
 		assertEquals("caf\u00E9", new String(StringTools.convertHexStringToByteArray(s)));
 	}
 
+	public static String getHexCafe() {
+		if (SystemTools.fileEncodingIsWindows()) {
+			return "636166E9";
+		}
+		if (SystemTools.fileEncodingIsUTF8()) {
+			return "636166C3A9";
+		}
+		return null;
+	}
+
 	// ********** convert camel-case to all-caps **********
 
 	public void testConvertCamelCaseToAllCaps() {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
index 94cec63..baa8e16 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
@@ -107,6 +107,14 @@
 	}
 
 	/**
+	 * Check whether the specified byte array contains the same characters as
+	 * the expected string. Throw an exception if they do not.
+	 */
+	public static void assertEquals(String expected, byte[] actual) {
+		Assert.assertEquals(expected, (actual == null) ? null : new String(actual));
+	}
+
+	/**
 	 * Test an object's implementation of {@link Serializable} by serializing the
 	 * specified object to a byte array; then de-serializing the byte array and
 	 * returning the resultant object.
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
index bcc2a8a..a074f54 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
@@ -13,6 +13,7 @@
 import java.io.Writer;
 import junit.framework.TestCase;
 import org.eclipse.jpt.common.utility.internal.io.WriterTools;
+import org.eclipse.jpt.common.utility.tests.internal.StringToolsTests;
 
 @SuppressWarnings("nls")
 public class WriterToolsTests
@@ -288,7 +289,11 @@
 	}
 
 	public void testConvertToHexString_negative() throws Exception {
-		this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+		this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+	}
+
+	private String getHexCafe() {
+		return StringToolsTests.getHexCafe();
 	}
 
 	private void verifyConvertToHexString(String expected, String string) throws Exception {