title: When using google protocol buffers to transfer String character,got messy code
body: <p>In debug view:</p>
  
  <p>Here is the code which encodes into messy string...</p>
  
  <pre><code>((S2CEnterCollection)objS2c).toByteString().toStringUtf8();
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>    ���"default(
      ���"default(
      ���"default(
      ���"default(
      ���"default(
      ����"default(
      ����"default(
      �����"default(
  </code></pre>
  
  <p>Here is the code which has the right string:</p>
  
  <pre><code>((S2CEnterCollection)objS2c).toString()
  </code></pre>
  
  <p>The original string was:</p>
  
  <pre><code>    cardList {
        cardId: 100001
        liked: 100
        number: 10
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100002
        liked: 123
        number: 10
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100003
        liked: 543
        number: 10
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100004
        liked: 766
        number: 10
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100005
        liked: 78
        number: 10
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100006
        liked: 89
        number: 123
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100007
        liked: 199
        number: 567
        finder: "default"
        rank: 1
      }
      cardList {
        cardId: 100008
        liked: 90909
        number: 232
        finder: "default"
        rank: 1
      }
  </code></pre>
  
  <p>So, does anyone know how it works?</p>