Bash has a way to specify strings with escaped characters like so: $'\r\n' which gives a string containing carriage return and newline characters.
The `read` built-in can take a delimiter with the -d flag. Combining these lets you use a null character: read -d $'\0'
Useful in some of the same places you might use xargs(1).
find . -name ... -print0 | while read -d $'\0'; do ./foo "$REPLY"; done