diff --git a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java
index a715315ed..49b7f034d 100644
--- a/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/admin/scheduler/AdminSchedulerAction.java
@@ -16,6 +16,7 @@
package org.codelibs.fess.app.web.admin.scheduler;
import java.text.MessageFormat;
+import java.util.Base64;
import javax.annotation.Resource;
@@ -121,7 +122,8 @@ public class AdminSchedulerAction extends FessAdminAction {
scheduledJobForm.crawler = Constants.ON;
scheduledJobForm.available = Constants.ON;
scheduledJobForm.cronExpression = null;
- scheduledJobForm.name = MessageFormat.format(fessConfig.getJobTemplateTitle(type), name);
+ final String decodedName = new String(Base64.getUrlDecoder().decode(name), Constants.CHARSET_UTF_8);
+ scheduledJobForm.name = MessageFormat.format(fessConfig.getJobTemplateTitle(type), decodedName);
final String[] ids = new String[] { "", "", "" };
if (Constants.WEB_CRAWLER_TYPE.equals(type)) {
ids[0] = "\"" + id + "\"";
diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java
index 73cceab75..71a3396e5 100644
--- a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java
+++ b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java
@@ -21,6 +21,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.util.Base64;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
@@ -32,6 +33,7 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringEscapeUtils;
import org.codelibs.core.lang.StringUtil;
+import org.codelibs.core.misc.Base64Util;
import org.codelibs.fess.Constants;
import org.codelibs.fess.entity.FacetQueryView;
import org.codelibs.fess.helper.ViewHelper;
@@ -216,4 +218,10 @@ public class FessFunctions {
return query;
}
+ public static String base64(final String value) {
+ if (value == null) {
+ return StringUtil.EMPTY;
+ }
+ return Base64.getEncoder().encodeToString(value.getBytes(Constants.CHARSET_UTF_8));
+ }
}
diff --git a/src/main/webapp/WEB-INF/fe.tld b/src/main/webapp/WEB-INF/fe.tld
index a6c38ef65..a1ccf647d 100644
--- a/src/main/webapp/WEB-INF/fe.tld
+++ b/src/main/webapp/WEB-INF/fe.tld
@@ -179,4 +179,16 @@
+