# Read<T>(ref T, ref int)

> Returns the Unicode.Rune at an index of this string. Increments the index to the position of the next character.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Collections](/engine/6000.7/script-reference/unity/collections.md)
* **Assembly:** UnityEngine.ManagedKernelModule

## Read\<T>(T, int)

```csharp
public static Unicode.Rune Read<T>(this ref T fs, ref int index) where T : unmanaged, INativeList<byte>, IUTF8Bytes
```

### Parameters

**** (T): A string to read.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): A reference to an index in bytes (not characters). Incremented by 1 to 4 depending upon the UTF-8 encoded size of the character read.

### Returns

| Type                                                                      | Description                                                                                                                                                            |
| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Rune](/engine/6000.7/script-reference/unity/collections/unicode/rune.md) | The character (as a `Unicode.Rune`) which starts at the byte index. Returns `Unicode.BadRune` if the byte(s) at the index do not form a valid UTF-8 encoded character. |
