# Strings and UTF-8

**URL:** <https://internals.rust-lang.org/t/strings-and-utf-8/9057>\
**Category:** language design\
**Created:** [December 18, 2018, 10:11pm UTC](https://internals.rust-lang.org/t/strings-and-utf-8/9057 "2018-12-18T22:11:14Z")\
**Posts on this page:** 2\
**Page:** 2

<div class="post-metadata">

**Author:** ![Ixrec](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/ixrec/32/6754_2.png) [@Ixrec](https://internals.rust-lang.org/u/Ixrec)\
**Post date:** [December 20, 2018, 6:10pm UTC](https://internals.rust-lang.org/t/strings-and-utf-8/9057/21 "2018-12-20T18:10:33Z")

</div>

I think it’s also worth mentioning that “the `std::basic_string` thing” is, in my experience, one of the biggest practical contributors to the infamous C++ template error message soup. Rust obviously has a bunch of other things mitigating that problem, but similar generics-related error explosions still exist, so I’m generally not a fan of generic types where one instantiation is expected to solve the vast majority of use cases on its own.

A generic string as a completely separate type from the standard string would be totally fine though, if it turns out that’s more helpful than multiple concrete types for the people that need non-UTF-8 strings.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:31am UTC](https://internals.rust-lang.org/t/strings-and-utf-8/9057/22 "2019-03-25T08:31:19Z")

</div>

Closed on March 25, 2019, 8:31am UTC

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

[Previous page](https://internals.rust-lang.org/t/strings-and-utf-8/9057.md?page=1)
