diff --git a/src/org/openstreetmap/josm/io/XmlWriter.java b/src/org/openstreetmap/josm/io/XmlWriter.java
index 0f06197..ae72868 100644
|
a
|
b
|
|
| 1 | 1 | // License: GPL. Copyright 2007 by Immanuel Scholz and others |
| 2 | 2 | package org.openstreetmap.josm.io; |
| 3 | 3 | |
| | 4 | import static org.openstreetmap.josm.tools.I18n.tr; |
| | 5 | import com.sun.org.apache.xml.internal.utils.XMLChar; |
| 4 | 6 | import java.io.PrintWriter; |
| 5 | 7 | import java.util.HashMap; |
| 6 | 8 | |
| … |
… |
public class XmlWriter {
|
| 38 | 40 | public static String encode(String unencoded, boolean keepApos) { |
| 39 | 41 | StringBuilder buffer = null; |
| 40 | 42 | for (int i = 0; i < unencoded.length(); ++i) { |
| | 43 | final char c = unencoded.charAt(i); |
| 41 | 44 | String encS = null; |
| 42 | | if (!keepApos || unencoded.charAt(i) != '\'') { |
| 43 | | encS = XmlWriter.encoding.get(unencoded.charAt(i)); |
| | 45 | if (XMLChar.isInvalid(c)) { |
| | 46 | System.err.println(tr("Skipping invalid XML character U+{0}", Integer.toString(c, 16))); |
| | 47 | encS = ""; |
| | 48 | } else if (!keepApos || c != '\'') { |
| | 49 | encS = XmlWriter.encoding.get(c); |
| 44 | 50 | } |
| 45 | 51 | if (encS != null) { |
| 46 | 52 | if (buffer == null) { |
| 47 | | buffer = new StringBuilder(unencoded.substring(0,i)); |
| | 53 | buffer = new StringBuilder(unencoded.substring(0, i)); |
| 48 | 54 | } |
| 49 | 55 | buffer.append(encS); |
| 50 | 56 | } else if (buffer != null) { |
| 51 | | buffer.append(unencoded.charAt(i)); |
| | 57 | buffer.append(c); |
| 52 | 58 | } |
| 53 | 59 | } |
| 54 | 60 | return (buffer == null) ? unencoded : buffer.toString(); |