diff --git a/include/fmt/ranges.h b/include/fmt/ranges.h
index 646d63f926b3..06fcaad53025 100644
--- a/include/fmt/ranges.h
+++ b/include/fmt/ranges.h
@@ -82,7 +82,7 @@ template <typename T> class is_like_std_string {
 
  public:
   static FMT_CONSTEXPR_DECL const bool value =
-      !std::is_void<decltype(check<T>(FMT_NULL))>::value;
+      is_string<T>::value || !std::is_void<decltype(check<T>(FMT_NULL))>::value;
 };
 
 template <typename Char>