The strings are encoded in big-endian unicode (UTF-16, but big endian). You can't map your characters directly from memory if you aren't using Java (well, you can cheat if you just write a zero between each character and accept that it's a shitty way to do it). There's an example in C# of encoding Minecraft strings here.
As for the contents of that string, it should be the hostname to connect to. If Google ran a Minecraft server, that string might be minecraft.google.com
.
An example of working with this actual packet is here.
So, with your question actually answered, some advice. The Minecraft protocol is terrible and writing a client will take a lot of work. You need to be able to support all packets in the protocol (yes, all of them), and you need to implement basic physics to fall to the ground so you don't get kicked for flying. There are several options, in order from best to worst choice:
- Use Bukkit and write a plugin for this
- Write a proxy instead of a client
- Write a client, like you're trying to now
So, if you do the first, you'll need to write a plugin in Java. I don't know much about this.
I do know a lot about the latter two options. I'm the maintainer of Craft.Net, which is a bunch of libraries, including a generic networking library, and a client library. You could throw together a client or proxy in a few hours. An example client is in the same repo, and there's a proxy here. These all use C#.
If you still want to totally roll your own, good luck and godspeed.