diff --git a/core/lib/Drupal/Component/Utility/SafeMarkup.php b/core/lib/Drupal/Component/Utility/SafeMarkup.php
index 56bd518..8f52e5d 100644
--- a/core/lib/Drupal/Component/Utility/SafeMarkup.php
+++ b/core/lib/Drupal/Component/Utility/SafeMarkup.php
@@ -153,6 +153,17 @@ public static function checkAdminXss($string) {
   }
 
   /**
+   * @todo Document this function.
+   *
+   * @param string $string
+   *
+   * @return SafeMarkup|string
+   */
+  public static function filterSeparator($string) {
+    return twig_drupal_join_filter(array($string));
+  }
+
+  /**
   * Retrieves all strings currently marked as safe.
   *
   * This is useful for the batch and form APIs, where it is important to
diff --git a/core/modules/field/src/Plugin/views/field/Field.php b/core/modules/field/src/Plugin/views/field/Field.php
index 106ce87..f37aa61 100644
--- a/core/modules/field/src/Plugin/views/field/Field.php
+++ b/core/modules/field/src/Plugin/views/field/Field.php
@@ -701,7 +701,7 @@ protected function renderItems($items) {
       if ($this->options['multi_type'] == 'separator') {
         $output = '';
         $separator = '';
-        $escaped_separator = Xss::filterAdmin($this->options['separator']);
+        $escaped_separator = SafeMarkup::filterSeparator($this->options['separator']);
         foreach ($items as $item) {
           $output .= $separator . SafeMarkup::escape($item);
           $separator = $escaped_separator;
diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc
index 4e007ad..700b389 100644
--- a/core/modules/views/views.theme.inc
+++ b/core/modules/views/views.theme.inc
@@ -132,7 +132,7 @@ function template_preprocess_views_view_fields(&$variables) {
       }
 
       if (!empty($variables['options']['separator']) && $previous_inline && $object->inline && $object->content) {
-        $object->separator = Xss::filterAdmin($variables['options']['separator']);
+        $object->separator = SafeMarkup::filterSeparator($variables['options']['separator']);
       }
 
       $object->class = Html::cleanCssIdentifier($id);
@@ -388,7 +388,7 @@ function template_preprocess_views_view_summary_unformatted(&$variables) {
   foreach ($variables['rows'] as $id => $row) {
     // Only false on first time.
     if ($count++) {
-      $variables['rows'][$id]->separator = Xss::filterAdmin($variables['options']['separator']);
+      $variables['rows'][$id]->separator = SafeMarkup::filterSeparator($variables['options']['separator']);
     }
     $variables['rows'][$id]->attributes = array();
     $variables['rows'][$id]->link = $argument->summaryName($row);
@@ -578,7 +578,7 @@ function template_preprocess_views_view_table(&$variables) {
           if (!empty($column_reference['content'])) {
             if (!empty($options['info'][$column]['separator'])) {
               $safe_content = SafeMarkup::escape($column_reference['content']);
-              $safe_separator = Xss::filterAdmin($options['info'][$column]['separator']);
+              $safe_separator = SafeMarkup::filterSeparator($options['info'][$column]['separator']);
               $column_reference['content'] = SafeMarkup::set($safe_content . $safe_separator);
             }
           }
