code: public static String replaceLeerDateiname(String name, boolean isPath, boolean userReplace, boolean onlyAscii) {
          String ret = name;
          boolean isWindowsPath = false;
          if (SystemInfo.isWindows() && isPath && ret.length() > 1 && ret.charAt(1) == ':') {
              // damit auch "d:" und nicht nur "d:\" als Pfad geht
              isWindowsPath = true;
              ret = ret.replaceFirst(":", ""); // muss zum Schluss wieder rein, kann aber so nicht ersetzt werden
          }
  
          // zuerst die Ersetzungstabelle mit den Wünschen des Users
          if (userReplace) {
              ret = ReplaceList.replace(ret, isPath);
          }
  
          // und wenn gewünscht: "NUR Ascii-Zeichen"
          if (onlyAscii) {
              ret = convertToASCIIEncoding(ret, isPath);
          } else {
              ret = convertToNativeEncoding(ret, isPath);
          }
  
          if (isWindowsPath) {
              // c: wieder herstellen
              if (ret.length() == 1) {
                  ret = ret + ":";
              } else if (ret.length() > 1) {
                  ret = ret.charAt(0) + ":" + ret.substring(1);
              }
          }
          return ret;
      }
docs: Entferne verbotene Zeichen aus Dateiname.
  
  @param name Dateiname
  @param isPath
  @param userReplace
  @param onlyAscii
  @return Bereinigte Fassung