I'm generating a QR code vCard using PHP QR Code (http://phpqrcode.sourceforge.net). It works, but not with Brazillian Portuguese characters. I can't find how to force UTF-8 to it.
The problem is that iOS will not recognize the characters, check the screenshots below (iOS and Android).
<?php
include('phpqrcode/qrlib.php');
// how to build raw content - QRCode with detailed Business Card (VCard)
$tempDir = "";
// here our data
$name = 'João Carlos da Silva';
$sortName = 'da Silva;João Carlos';
$phone = '+55 (89) 2345-6789';
$phonePrivate = '+55 (94) 4521-3989';
$phoneCell = '+55 (66) 1234-5678';
$orgName = 'GH Construtora';
$email = 'emaildousuario@dominio.com.br';
// if not used - leave blank!
$addressLabel = 'Escritório';
$addressPobox = '';
$addressExt = '2º andar';
$addressStreet = 'Av. das Nações, 200';
$addressTown = 'Cidade';
$addressRegion = 'SP';
$addressPostCode = '18.902-100';
$addressCountry = 'Brasil';
// we building raw data
$codeContents = 'BEGIN:VCARD'."\n";
$codeContents .= 'VERSION:2.1'."\n";
$codeContents .= 'N:'.$sortName."\n";
$codeContents .= 'FN:'.$name."\n";
$codeContents .= 'ORG:'.$orgName."\n";
$codeContents .= 'TEL;WORK;VOICE:'.$phone."\n";
$codeContents .= 'TEL;HOME;VOICE:'.$phonePrivate."\n";
$codeContents .= 'TEL;TYPE=cell:'.$phoneCell."\n";
$codeContents .= 'ADR;TYPE=work;'.
'LABEL="'.$addressLabel.'":'
.$addressPobox.';'
.$addressExt.';'
.$addressStreet.';'
.$addressTown.';'
.$addressPostCode.';'
.$addressCountry
."\n";
$codeContents .= 'EMAIL:'.$email."\n";
$codeContents .= 'END:VCARD';
// generating
QRcode::png($codeContents, $tempDir.'026.png', QR_ECLEVEL_L, 7);
// displaying
echo '<img src="026.png" />';