aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/channel.php5
-rw-r--r--include/text.php5
2 files changed, 10 insertions, 0 deletions
diff --git a/include/channel.php b/include/channel.php
index 4bf490bf0..42a392e8e 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -2240,6 +2240,11 @@ function get_zcard_embed($channel, $observer_hash = '', $args = array()) {
* - false if no channel with $nick was found
*/
function channelx_by_nick($nick) {
+
+ // If we are provided a Unicode nickname convert to IDN
+
+ $nick = punify($nick);
+
$r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_address = '%s' and channel_removed = 0 LIMIT 1",
dbesc($nick)
);
diff --git a/include/text.php b/include/text.php
index 55fc49560..411576fa6 100644
--- a/include/text.php
+++ b/include/text.php
@@ -3344,6 +3344,9 @@ function featured_sort($a,$b) {
}
+// Be aware that punify will convert domain names and pathnames
+
+
function punify($s) {
require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
$x = new idna_convert(['encoding' => 'utf8']);
@@ -3351,6 +3354,8 @@ function punify($s) {
}
+// Be aware that unpunify will only convert domain names and not pathnames
+
function unpunify($s) {
require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
$x = new idna_convert(['encoding' => 'utf8']);