PHP - Caracteres extraños en una variable tipo "string"

 
Vista:
sin imagen de perfil

Caracteres extraños en una variable tipo "string"

Publicado por Luis (4 intervenciones) el 18/10/2017 10:34:56
Hola a todos.

Quizá sea una chorrada lo que vaya a preguntar, pero ahí va. Tengo un problema y es el siguiente: estoy trasteando con una aplicación ya generada (yo solo tengo que modificar algunas cosas para mejorarla). En un momento dado, a partir de un formulario, se piden unos datos que se guardan en un array para luego generar un pdf. Uno de los campos del formulario es una pequeña descripción que se guarda en una variable tipo "string". Esa descripción contiene (o puede contener) caracteres extraños como símbolos matemáticos. Lo que se introduce en dicho campo se guarda bien, al menos yo lo veo bien en la pantalla del formulario. Lo que ocurre es que luego, en el pdf que se genera, se corta el texto. En concreto, la parte donde se corta es la siguiente: "Ø<25", justo antes del signo "menor que".

Un saludo y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Caracteres extraños en una variable tipo "string"

Publicado por xve (6935 intervenciones) el 18/10/2017 11:14:12
Hola Luis, como generas el documento pdf?

Por lo que comentas, entiendo que es un problema de codificación de los caracteres, el charset o de la pagina o del generador de pdf... si nos puedes comentar con mas detalle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Caracteres extraños en una variable tipo "string"

Publicado por Luis (4 intervenciones) el 18/10/2017 12:46:45
La verdad es que estoy un poco verde, así que te iré pegando trozos de código para que veas lo que hace. Aquí es donde toma de la pantalla el texto que ha escrito el usuario:

1
2
3
4
<tr>
	<td><?php echo __('Trabajo:'); ?></td>
	<td><?php echo $expediente['Factura']['concepto']; ?></td>
</tr>

A continuación, he probado a realizar un <?php var_dump($expediente['Factura']['concepto']); ?> y me devuelve lo que he escrito.

La última parte del código es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="panel-body pull-right">
	<?php if(!empty($expediente)) : ?>
		<?php if($permision_level > 2 && !empty($expediente['Factura']['id'])): ?>
			<a data-toggle="modal" href="#crearFactura" class="btn btn-danger"><?php echo ('Modificar');?></a>
	     <?php else: ?>
			<a data-toggle="modal" href="#crearFactura" class="btn btn-success"><?php echo ('Crear solicitud de factura');?></a>
		<?php endif; ?>
		<a data-toggle="modal" href="#uploadFileFactura" class="btn btn-primary"><?php echo ('Añadir facturas');?></a>
		<?php if($permision_level > 1 && !empty($expediente['Factura']['id'])): ?>
 
		<a  href="/<?php echo app_dir(); ?>/pdfs/factura/<?php echo $oferta['Oferta']['id']; ?>.pdf"  target="_blank"class="btn btn-info">
		<?php echo ('PDF');?></a>
		<?php endif; ?>
	<?php endif; ?>
	<?php echo $this->element('modal/facturas/crear_factura');?>
</div>
 
<?php echo $this->element('modal/upload',array('element_id' => $expediente['Factura']['id'], 'upload_type' => 16 ,'modal_name' => "uploadFileFactura",'type_doc' => 1));?>

Como verás, aquí se crean unos botones para, entre otras cosas, generar el pdf. Probé a escribir nuevamente el var_dump al final de todo y seguía sin dar problemas.


Luego, en otro archivo, donde se genera el pdf, en el encabezado hay una línea que dice

1
<?php echo $this->Html->charset('utf-8'); ?>

Y a continuación, si vuelvo a hacer la prueba del var_dump (ya os digo, soy nuevo en todo esto y seguramente haya formas más refinadas de hacer todo esto, pero mientras las descubro tiro con esto), lo que me devuelve es lo siguiente:

"texto_introducido" Ø, y donde debería decir "<25", saca "string(1) "0"".

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar