Преобразование нелатинского текста в записи ASCII — без указания локали

Я работаю над проектом, который требует перевода на более чем 40 языков.

У меня большинство вещей все отсортировано, но это действительно беспокоит меня. Пожалуйста, посмотрите на это, чтобы увидеть, что мне нужно:

<script type="text/javascript">
/* Purpose: Converts all non-latin based characters to their ASCII entity value
* Usage: [String].encode()
* Arguments: none
* Returns: String
*/
String.prototype.encode = function() {
return this.replace(/([^\x01-\x7E])/g, function(s) { return         "&#"+s.charCodeAt(0)+";"; });
};

/**
* Converts all ASCII entity value characters into their unicode equivelant
* @return (String)
*/
String.prototype.decode = function() {
Number.prototype.toHex = function(pad) {
var s = this.toString(16).toUpperCase();
var v = "";
if(typeof pad == "number") {
while(v.length + s.length < pad) {
v += "0";
}
}
return v + s;
};
return this.replace(/(&#([^;]*);)/g, function(s) { return unescape("%u"+        Number(RegExp.$2).toHex(4)); });
};

function translate() {
document.getElementById("txtOutput").value =         document.getElementById("txtInput").value.encode();
}
</script>

<div class="admin_block">

<h1>Translator</h1>
<p>Sometimes you need to add non latin Characters to the templates, php code and more. This tool will help you convert your text</p>
<h2>Type or paste non latin text in here</h2>
<form name="input" onmousemove="translate();">
<textarea style="width: 900px" id="txtInput" onkeyup="translate();" onchange="translate();" onmouseup="translate();" onmousemove="translate();"></textarea>
</form>

<h2>Copy and paste this safe code below</h2>
<form onmousemove="translate();">
<textarea style="width: 900px" id="txtOutput"></textarea><br />
<button id="btnSelect" onclick="translate();document.getElementById('txtOutput').select(); return false;">Translate and select</button>
</form>

</div>

Возьмите немного русского текста, немного тайского и т. Д. И вставьте его в мой удивительный JS-конвертер — он выводит значения ASCII — эти значения я могу теперь использовать в массиве PHP, HTML-шаблонах и т. Д., И все в порядке.

Я пишу новый метод для моего класса перевода PHP для преобразования языкового массива PHP в новые языки — вот в чем проблема. Как я могу заставить PHP делать то, что делает этот JS нормально? Я пробовал htmlentities, iconv и т. Д. Я хочу увидеть переведенный текст, такой как этот:

&#1057;&#1086;&#1083;&#1086;&#1084;&#1086;&#1085;&#1086;&#1074;&#1099; &#1054;&#1089;&#1090;&#1088;&#1086;&#1074;&#1072;

Соломоновы Острова

0

Решение

ну, это, кажется, дает мне результат, который я после:

$s = htmlentities(mb_convert_encoding($s, 'HTML-ENTITIES', 'UTF-8'));

Теперь я вижу текстовый результат, который мне нужно скопировать из браузера и вставить в мой новый массив.

0

Другие решения

Других решений пока нет …