0

我想让用户可以在演示中发布他们喜欢的歌曲但是,当 url 包含土耳其字符时,Twitter 会从第一个土耳其字符之后拆分 url,就像图像 在此处输入图像描述
上的 Url 必须是一样的myurl.com/?view=s&artist=demet%20akıalın&track=ışık%20hğzmesi ,但它在之后被剪切demet ak

我使用的代码在这里:

<?php
    define('APP_BASE_URL', 'http://www.myurl.com');
    header('Content-type: text/html; charset=UTF-8');
    $a['artistname'] = 'demet akıalın';
    $a['trackname'] = 'ışık hğzmesi';
?> 

<a target="_blank" title="Share on Twitter" href="https://twitter.com/share?hashtags=CruisEar&text=<?php echo $a['artistname']." - ".$a['trackname']; ?>&url=<?php echo urlencode(str_replace(" ","%20",APP_BASE_URL."?view=s&artist=".$a['artistname']."&track=".$a['trackname']));?>" data-url="https://dev.twitter.com" data-via="your_screen_name" data-lang="en"><img src="http://www.olmasigereken.com/demo2/img/twit.gif" alt="share on twitter" /></a>
4

1 回答 1

0

Twitter 做得对。根据 HTTP/1.1 规范,URL 不能包含非 ASCII 值,并且某些 ASCII 值需要进行百分比编码。

ı字符是非 ASCII 所以它必须是百分比编码的,就像你的空间必须变成%20

echo rawurlencode(utf8_encode(APP_BASE_URL.'?view=s&artist='.$a[artistname].'&track='.$a[trackname]));
于 2012-12-24T15:41:38.467 回答